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.... 惹不起惹不起...
转载自:https://www.cnblogs.com/wisewrong/p/9642264.html