1-1.Set的基本用法

  1. Set是类似与数组的一种数组结构,不同点是Set没有重复的值
  2. Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。另外,NaNundefined都可以被存储在Set 中, NaN之间被视为相同的值(NaN被认为是相同的,尽管 NaN !== NaN
  1. var s=new Set()
  2. var s=new Set([1,2,3,3,4])
  3. console.log(s);

1-2.Set的size属性

  1. var s=new Set([1,2,3,3,4])
  2. console.log(s.size); //去重后的长度4

1-3.添加元素add()

  1. var s=new Set([1,2,3,3,4])
  2. s.add(5)
  3. console.log(s); //1,2,3,4,5

1-4.删除元素delete()

  1. var s=new Set([1,2,3,3,4])
  2. s.delete(2)
  3. console.log(s); //1,3,4

1-5.判断是否含有某个值has()

  1. var s=new Set([1,2,3,3,4])
  2. console.log(s.has(2)); //true

1-6.清除所有成员clear()

清除所有值的解构,没有返回值

  1. var s=new Set([1,2,3,3,4])
  2. console.log(s.clear());

1-7.Set中的键值和键名

键值与键名相同

  1. var s=new Set([1,2,3,4])
  2. for(let key of s.keys()){
  3. console.log(key); //1 2 3 4
  4. }
  5. for(let value of s.values()){
  6. console.log(value); //1 2 3 4
  7. }

1-8.遍历 for-of

  1. var s=new Set([1,2,3,4])
  2. for(let item of s){
  3. console.log(item);
  4. }

1-9.forEach

  1. var s=new Set([1,2,3,4])
  2. s.forEach(value=>{
  3. console.log(value);
  4. })

1-10.并集

  1. // 并集
  2. var a=new Set([1,2,3])
  3. var b=new Set([4,5,6])
  4. var union=new Set([...a,...b])
  5. console.log(union);

1-11.交集

  1. // 交集
  2. var a=new Set([1,2,3])
  3. var b=new Set([3,5,6])
  4. var intersect=new Set([...a].filter(x=>b.has(x)))
  5. console.log(intersect);

1-12.差集

  1. var a=new Set([1,2,3])
  2. var b=new Set([3,5,6])
  3. var diff=new Set([...a].filter(x=>!b.has(x)))
  4. console.log(diff);

1-13.数组去重

Array.from()是ES6的方法
Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。

  1. var a=new Set([1,2,2,3,3,4,5])
  2. var arr=Array.from(a)
  3. console.log(arr);
  1. var a=new Set([1,2,2,3,3,4,5])
  2. console.log(a);//Set(5) {1, 2, 3, 4, 5}
  3. console.log([...a]);//[1, 2, 3, 4, 5]