set详解
ES6 提供了新的数据结构 Set
它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set本身是一个构造函数,用来生成 Set 数据结构。
const s = new Set(); s.add(x) //1.增加 不会增加重复的值 s.size // 2. 长度 s. delete(value) // 3. 删除 s.has(value) // 4.是否包含 s.clear() // 5. 清除所有成员 for (let i of s) { console.log(i); } //可以用let of 循环 const set = new Set([1, 2, 3, 4, 4]); [...set] // 转化为数组 // [1, 2, 3, 4] //可以接收一个数组去重 (或者类数组) [...new Set(array)] //去除数组重复成员 [...new Set('ababbc')].join('') // "abc" //去除字符串重复成员
遍历操作 (set的key = value)
- Set.prototype.keys():返回键名的遍历器
- Set.prototype.values():返回键值的遍历器
- Set.prototype.entries():返回键值对的遍历器
- Set.prototype.forEach():使用回调函数遍历每个成员
可以用let of 循环
而且,数组的map和filter方法也可以间接用于 Set 了
let set = new Set([1, 2, 3]); set = new Set([...set].map(x => x * 2)); // 返回Set结构:{2, 4, 6} let set = new Set([1, 2, 3, 4, 5]); set = new Set([...set].filter(x => (x % 2) == 0)); // 返回Set结构:{2, 4}
因此使用 Set 可以很容易地实现并集(Union)、交集(Intersect)和差集(Difference)。
let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // 并集 let union = new Set([...a, ...b]); // Set {1, 2, 3, 4} // 交集 let intersect = new Set([...a].filter(x => b.has(x))); // set {2, 3} // 差集 let difference = new Set([...a].filter(x => !b.has(x))); // Set {1}
    本人是一个技术爱好者
1.但是每个技术爱好者都是从萌新开始的
2.我所有的博文都是我各方资料查阅(看的比较乱比较杂,因为有些是群里讨论等等来源,无法辨别出处,所以我的文章都是没有写明出处,都是我个人消化后整理,)
3.但是没有经过我实践的我一般会标注
4.希望大家共同交流共同进步,指出我的不足 谢谢
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号