一.Set
ES6提供了新的数据结构Set。类似于数组,只不过其成员值都是唯一的,没有重复的值。
Set本身是一个构造函数,用来生成Set数据结构。
1 . Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。
var s = new Set();
var set = new Set([1, 2, 3, 4, 4]);
[...set] // [1, 2, 3, 4]
var items = new Set([1, 2, 3, 4, 5, 5, 5, 5]);
items.size // 5
2.Set 的方法:
add(item) 方法,用来向 Set 添加任意类型的元素,如果已经添加过则自动忽略;
has(item) 方法用来检测 Set 中是否存在指定元素;
delete(item) 方法用来从 Set 中删除指定元素;
clear() 用来清空 Set;
size 属性 获取 Set 集合长度
示例:
var set = new Set();
set.add(window);
set.has(window); // true
set.size; // 1
set.add(window);
set.add(1);
set.size; // 2
set.delete(window);
set.has(window); // false
set.clear();
set.size; // 0
3.Set实例属性
Set.prototype.constructor:构造函数,默认就是Set函数。
Set.prototype.size:返回Set实例的成员总数。
Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。
注意:
- Set 调用 add、has、delete 等方法时对 key 进行的比较,不做类型转换。向Set加入值的时候,不会发生类型转换,所以5和”5”是两个不同的值。
- Set 中,NaN 只能添加一次;
- Set 中,「-0」和「0 或 +0」可以同时存在,因为符号不一样;
- 两个对象总是不相等的。
除数组重复成员的方法。
var set = new