脚本宝典收集整理的这篇文章主要介绍了ES6的Set数据结构,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
ES6:Set
大神地址:来自阮一峰大神的ES6入门书籍
了解Set
- Set本身是一个构造函数,用来生成Set数据结构
const s = new Set();
[2, 3, 5, 4, 5, 2, 2].foreach(x => s.add(x));
for(let i of s ) {
console.log(i); //2 3 5 4
}
VAR set = new Set([1, 2, 3, 4, 4]);
[...set]; // [1, 2, 3, 4]
let set = new Set();
let a = NaN;
let b = NaN;
set.add(a);
set.add(b);
set; //{NaN} 只能加入一个,说明Set内部两个NaN是相等的
Set实例的属性和方法
-
属性:
-
操作方法(方法的具体实现见:我对JS集合的简单学习):
s.add(1).add(2).add(2); //链式写法
s.size(); //2
s.has(3); //false
s.delete(2);
s.has(2); //false
这里要注意Set的键名和键值是同一个值,所以key()和values()行为是一致的。
let set = new Set(['red', 'green', 'no']);
for(let item of set.keys()) {
console.log(item); //red green no
}
for(let item of set.values()) {
console.log(item); //red green no
}
for(let item of set.entries()) {
console.log(item); //['red': 'red'] ['green': 'green'] ['no': 'no']
}
//对每个成员执行某种操作,参数依次为键值、键名、集合本身
new Set([1, 2, 3]).forEach((value, key) => console.log(value * 2)); //2 4 6
操作集合
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
//并集
let union = new Set([...a, ...b]); //{1, 2, 3, 4}
//交集
let intersect = new Set([...a].filter(x => b.has(x))); //{2, 3}
//差集
let difference = new Set([...a].filter(x => !b.has(x))); //{1}
数组的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}
以上是脚本宝典为你收集整理的ES6的Set数据结构全部内容,希望文章能够帮你解决ES6的Set数据结构所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。