ES6 数据结构-Set

一、基本用法与特性

  Set本身是一个构造函数,可直接用来生成Set数据结构:

const s = new Set();

  可传入数组or伪数组

//传入数组
const  set = new Set([1,2,3,4]);
//传入伪数组
let divs = document.querySelectorAll('div');
const set2 = new Set(divs);

  ①Set结构不会添加重复值

const set = new Set([1,2,3,4,4]);
[...set]; //[1,2,3,4]

  ②Set结构加入数据时不会发生类型转换

const set = new Set([1,2,3,4,'4']);
[...set]; //[1,2,3,4,'4']

  Set内部判断两个值是否相等使用的方法类似于===,所以4和'4'可以同时添加

二、Set实例的属性和方法

  属性:Set.prototype.size:返回Set实例的长度
  方法
    ①.add(value):添加某个值,并返回Set结构本身
    ②.delete(value):删除某个值,并返回布尔值,表示删除结果是否成功
    ③.has(value):返回一个布尔值,表示Set实例是否含有该成员
    ④clear():消除所有成员,无返回值
  Tips:Set可以用来去除数组中的重复元素:

let res = [...new Set(array)];
let res2 = Array.from(new Set(array));

三、遍历操作

  Set结构没有键名,只有键值,所以keys()方法和values()方法完全一致。同时Set结构的实例默认可遍历,其默认遍历器生成函数就是它的values方法:

Set.prototype[Symbol.iterator] === Set.prototype.values

  这意味着可以省略values方法,直接用for...of循环遍历Set:

for (let x of set){
  console.log(x);
}

  此外Set结构的实例可以用forEach方法对于每个成员执行操作:

set.forEach((value)=>console.log(value*2));

你可能感兴趣的:(ES6 数据结构-Set)