es6新增数据结构Set的属性和方法集合

let set1 = new Set([1,2,3]);
set1.add('4'); // 添加成员, 返回Set结构本身 {1,2,3,'4'}
set1.size; // 返回Set实例的成员总数。 4。
set1.add(4); // Set不会进行类型转换 {1,2,3,'4',4} 
set1.delete(3); // 删除成员,返回布尔值,表示是否删除成功 {1,2,'4',4}
set1.has(2); // 返回布尔值,表示该值是否是Set的成员 true
set1.clear(); // 清除所有成员,没有返回值
set1.keys(); // 返回键名的遍历器
set1.values(); // 返回键值的遍历器
set1.entries();// 返回键值对的遍历器
set1.forEach();// 使用回调函数变量每一个成员,Set的插入顺序就是变量顺序
由于Set结构没有key(也可以说key和value相等),所以set1.keys()和set1.values()行为是一致的
Set结构的实例默认可遍历,它的默认遍历器生成函数就是它的values方法。因此可以直接遍历Set.
eg:
    for(let item of set1) {
        console.log(item)
    }  // 1,2,'4',4 

  for(let item of set1.entries()) {
     console.log(item)
  }  // [1,1],[2,2],['4','4'],[4,4]

  set1.forEach((value, key) => console.log(value +":"+ key)) // 1:1,2:2,'4':'4',4:4

set转数组
    1.使用扩展运算符
        eg: let arr1=[...set1];
    2.使用Array.from
        eg: let arr2=Array.from(set1);
    3.遍历set然后数组push

数组的map和filter方法也可以间接用于Set。
let set2 = new Set([1, 2, 3]);
    set2 = new Set([...set2].map(x => x * 2)); // 返回Set结构:{2, 4, 6}
let set3 = new Set([1, 2, 3, 4, 5]);
    set3 = new Set([...set3].filter(x => (x % 2) == 0)); // 返回Set结构:{2, 4}

猜你喜欢

转载自blog.csdn.net/qq_35408366/article/details/130531304