for of 用來遍歷數組,得到的值為數組中元素的值
for in 用來遍歷對象,得到的值為對象中的key,
用for in遍歷,obj.key中的值是undefined,obj[key]可以得到obj中的value。
obj[]中的[]里為字符串,可以為obj添加屬性,如果沒有引號,則會報錯。
obj.屬性名,屬性名只能是對象中的字符串和方法,如果屬性名是數字,則要用obj[ 數字 ]來獲取value
注:對象會自動把屬性名的number轉換為字符串
————————————————
版權聲明:本文為CSDN博主「blue11l」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45780897/article/details/119415250
六、new Set()
ES6 新增了 Set 這一數據結構,類似于數組,但 Set 的成員具有唯一性
基于這一特性,就非常適合用來做數組去重了
function distinct(a, b) {
return Array.from(new Set([...a, ...b]))
}
那使用 Set 又需要多久時間來處理 15W 的數據呢?

喵喵喵??? 57ms ??我沒眼花吧??
然后我在兩個數組長度后面分別加了一個0,在 150W 的數據量之下...

居然有如此高性能且簡潔的數組去重辦法?!
七、for...of + Object
這個方法我只在一些文章里見過,實際工作中倒沒怎么用
首先創建一個空對象,然后用 for 循環遍歷
利用對象的屬性不會重復這一特性,校驗數組元素是否重復
function distinct(a, b) {
let arr = a.concat(b)
let result = []
let obj = {}
for (let i of arr) {
if (!obj[i]) {
result.push(i)
obj[i] = 1
}
}
return result
}
當我看到這個方法的處理時長,我又傻眼了

15W 的數據居然只要 16ms ??? 比 Set() 還快???
然后我又試了試 150W 的數據量...

emmmmmmm.... 惹不起惹不起...
轉載自:http://www.rzrgm.cn/wisewrong/p/9642264.html

浙公網安備 33010602011771號