ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set 本身是一个构造函数,用来生成 Set 数据结构。
const setset = new Set([1, 2, 3, 4, 4]);
setset
>>Set(4) {1, 2, 3, 4}
setset.size // set长度用size属性
>>4
[...setset] //使用扩展运算符 将set结构变数组结构
>> [1, 2, 3, 4]
Set 函数可以接受一个数组(比如上面例子中)(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。
const set = new Set(document.querySelectorAll('div'));
要点:
1、 set判断两个值是不是一样,使用的是===,并不会转化类型。
2、set中只能有一个NaN,他认为两个NaN相等。
3、set中两个对象始终不等,即使两个空对象,也是不等的。
4、经常用来数组去重:
// 去除数组的重复成员
[...new Set(array)]