es6之Set数据结构(一)

161 阅读1分钟

一:基本用法

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); // 4

3. 基于初始化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); // 1

ok,今天的共读暂时到这里,以上每个例子都是经过设计和验证过的。童叟无欺。第一次发,还有点小激动呢。