ES6之Set小结

喜欢ヅ旅行 2021-10-01 00:04 358阅读 0赞

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值
Set本身是一个构造函数,用来生成 Set 数据结构。

  1. const s = new Set();
  2. [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
  3. for (let i of s) {
  4. console.log(i); 2 3 5 4
  5. }

Set函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化

  1. const set =new Set([1,2,3,5,6,7,7]);
  2. console.log([...set]);
  3. console.log(set,'长度:',set.size);

在这里插入图片描述

  1. //接受类似数组的对象作为参数。
  2. const set1=new Set(document.querySelectorAll('div'));
  3. console.log('数组的对象作为参数:',[...set1],set.size)

去除数组重复成员的方法

  1. console.log('去除数组重复成员',[...new Set([1,2,3,4,51,1])],'去重',[...new Set(numArr)]);

在这里插入图片描述
去除字符串里面的重复字符

  1. console.log('去除字符串里面的重复字符',[...new Set('ababbc')].join(''));

Set 结构及数组互转:
Array.from方法可以将 Set 结构转为数组,(此方法与set使用也可以去重哦!)

  1. const arr=Array.from(new Set([1, 2, 3,4,3, 4, 5]));
  2. console.log('Set 结构转为数组',arr)

在这里插入图片描述
set:数组转set

  1. const sr1 = new Set();
  2. [2, 3, 5, 4, 5, 2, 2].forEach(x => sr1.add(x));
  3. console.log(sr1)

在这里插入图片描述


  • Set 结构的实例有以下属性。
  • Set.prototype.constructor:构造函数,默认就是Set函数。
  • Set.prototype.size:返回Set实例的成员总数。

set实例方法两种:操作方法(用于操作数据)和遍历方法(用于遍历成员)

1.操作方法(用于操作数据)
Set.prototype.add(value):添加某个值,返回 Set 结构本身。
Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。
Set.prototype.clear():清除所有成员,没有返回值。

  1. s.add(1).add(2).add(2);
  2. // 注意2被加入了两次
  3. s.size // 2
  4. s.has(1) // true
  5. s.has(2) // true
  6. s.has(3) // false
  7. s.delete(2);
  8. s.has(2) // false

2.Set 结构的实例有四个遍历方法,可以用于遍历成员。
Set.prototype.keys():返回键名的遍历器
Set.prototype.values():返回键值的遍历器
Set.prototype.entries():返回键值对的遍历器
Set.prototype.forEach():使用回调函数遍历每个成员

  1. let set = new Set(['red', 'green', 'blue']);
  2. for (let item of set.keys()) {
  3. console.log(item);
  4. }
  5. // red
  6. // green
  7. // blue
  8. for (let item of set.values()) {
  9. console.log(item);
  10. }
  11. // red
  12. // green
  13. // blue
  14. for (let item of set.entries()) {
  15. console.log(item);
  16. }
  17. // ["red", "red"]
  18. // ["green", "green"]
  19. // ["blue", "blue"]

Set 实现并集(Union)、交集(Intersect)和差集(Difference)。

  1. let a = new Set([1, 2, 3]);
  2. let b = new Set([4, 3, 2]);
  3. // 并集
  4. let union = new Set([...a, ...b]);
  5. // Set {1, 2, 3, 4}
  6. // 交集
  7. let intersect = new Set([...a].filter(x => b.has(x)));
  8. // set {2, 3}
  9. // 差集
  10. let difference = new Set([...a].filter(x => !b.has(x)));
  11. // Set {1}

文章es6:
http://es6.ruanyifeng.com/#docs/set-map

发表评论

表情:
评论列表 (有 0 条评论,358人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6set用法

    语法:   set对象允许存储任何类型的唯一值,无论是原始值后者是对象引用;  set对象是值的集合,元素只会出现一次,即Set中的元素是唯一的。 值得注意的是

    相关 es6Set语法

    Set类似数组,但所有的数据都是唯一的,没有重复的值,如果有重复的会默认删掉。它本身是一个构造函数。 > let set=new Set(\[1,2,3,4\]) size

    相关 es6Set(2)

    脑阔痛Ծ‸Ծ,我终于又开始学es6啦~ es6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 什么是set?大致长这样 var

    相关 ES6Set小结

    ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 const s