es6之Set(2)

古城微笑少年丶 2022-03-27 04:17 290阅读 0赞

脑阔痛Ծ‸Ծ,我终于又开始学es6啦~

es6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值

什么是set?大致长这样

  1. var s = new Set(["a","b","c"]);
  2. console.log(s);

20190111234624940.png

Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。

1.add(value):添加某个值,返回Set结构本身

  1. var s = new Set(["a","b","c"]);
  2. s.add(1);
  3. console.log(s);
  4. //结果:Set(5) {"a", "b", "c", 1}

一、set方法中只会保存唯一

  1. var s = new Set(["a","b","c"]);
  2. s.add(1).add(2).add(1);
  3. console.log(s);
  4. //结果:Set(5) {"a", "b", "c", 1, 2}

二、NaN也不会例外,即使NaN===NaN是false

  1. var s = new Set(["a","b","c"]);
  2. s.add(NaN).add(NaN);
  3. console.log(s);
  4. //结果:Set(4) {"a", "b", "c", NaN}

2.delete(value):删除某个值,返回一个布尔值,表示删除是否成功

  1. var s = new Set(["a","b","c"]);
  2. s.delete('b')
  3. console.log(s);
  4. //结果:Set(2) {"a", "c"}

有返回值

  1. var s = new Set(["a","b","c"]);
  2. var res = s.delete('b')
  3. console.log(s,res);
  4. //结果:Set(2) {"a", "c"} true

#

3.has(value):返回一个布尔值,表示该值是否为Set的成员

  1. var s = new Set(["a","b","c"]);
  2. console.log(s.has('a'));
  3. //结果:true

#

4.clear():清除所有成员,没有返回值

  1. var s = new Set(["a","b","c"]);
  2. s.clear();
  3. console.log(s);
  4. //结果:Set(0) {}

Set 结构的实例有四个遍历方法,可以用于遍历成员

1.forEach():使用回调函数遍历每个成员

  1. var s = new Set(["a","b","c"]);
  2. s.forEach(function (item,index,set) {
  3. console.log(item,index,set);
  4. })
  5. //结果: a a Set(3) {"a", "b", "c"}
  6. b b Set(3) {"a", "b", "c"}
  7. c c Set(3) {"a", "b", "c"}
  8. //循环的那一项、当前项索引、完整的set数据结构
  9. //在set数据结构中项和索引一样

#

2.keys():返回键名的遍历器

  1. var s = new Set(["a","b","c"]);
  2. var keys = s.keys();
  3. console.log(keys);
  4. //结果:SetIterator {"a", "b", "c"}

此处遍历打印的值,false表示遍历还没结束。按照插入顺序一个一个打出来

  1. var s = new Set(["a","b","c"]);
  2. var keys = s.keys();
  3. console.log(keys.next());
  4. console.log(keys.next());
  5. console.log(keys.next());
  6. console.log(keys.next());
  7. //结果: {value: "a", done: false}
  8. {value: "b", done: false}
  9. {value: "c", done: false}
  10. {value: undefined, done: true}

#

3.values():返回键值的遍历器

  1. var s = new Set(["a","b","c"]);
  2. var values = s.values();
  3. console.log(values.next());
  4. console.log(values.next());
  5. console.log(values.next());
  6. console.log(values.next());
  7. //结果同上

4.entries():返回键值对的遍历器

  1. var s = new Set(["a","b","c"]);
  2. var entries = s.entries();
  3. console.log(entries.next());
  4. console.log(entries.next());
  5. console.log(entries.next());
  6. console.log(entries.next());

结果。项、索引、是否遍历完了

20190112003224610.png

小例子,数组去重

  1. var arr = [1,2,2,4,5,8,5,"1",NaN,NaN];
  2. var s = new Set(arr);
  3. console.log(s);

结果: 20190112003620424.png

最后:凌晨十二点半,困。。。

发表评论

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

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

相关阅读

    相关 ES6set用法

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

    相关 es6Set语法

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

    相关 es6Set2

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

    相关 ES6Set小结

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