一:基本用法
1. es6提供了新的数据结构--Set,它类似于数组,不同的是:他的成员的值都是唯一的。
证据:
const s = new Set([1, 2, 3, 3, 3, 3]);
console.log([...s]); // [1,2,3]2. 初始化Set结构,Set函数接受一个数组(如上面的代码例子)或者具有iterable接口的其他数据结构(如下例子)。
证据:
function divs() {
return document.querySelectorAll('div');
}
const s = new Set(divs());
console.log(s.size); // 43. 基于初始化Set结构可以传入数组,且Set结构本身不重复的特质,以及Set和数组可互相转化,由此可发挥Set的第一个作用---帮助数组去重。
const arr = [1,2,3,3,3,3,3]
const s = new Set(arr);
console.log([...s]); // [1, 2, 3]4. Set结构内部判断两个值是否相同使用的算法叫做"Same-value equality",类似于全等运算符----"==="。
证据:
console.log({}==={}); // false
let s = new Set();
s.add({});
console.log(s.size) // 1
s.add({});
console.log(s.size); // 2但是,是有区别的,Same-value equality算法认为:NaN等于NaN,而全等运算符认为NaN不等于NaN。如下
console.log(NaN === NaN); // false
let s = new Set();
s.add(NaN);
console.log(s.size) // 1
s.add(NaN);
console.log(s.size); // 1ok,今天的共读暂时到这里,以上每个例子都是经过设计和验证过的。童叟无欺。第一次发,还有点小激动呢。