set的使用

Posted on 2020-09-22 03:13  猫头唔食鱼  阅读(155)  评论(0编辑  收藏  举报
 1.数组去重
     var unique = (arr) => [...new Set(arr)]
        console.log(unique([1, 2, 3, 1]));

 

   2.set转为数组
    // Array.from(set)和展开set作用一样,都是把set转为数组
         var set2 = new Set(['a', 'b'])
        console.log(Array.from(set2));// ['a','b']
        console.log([...set2]); // ['a','b']

 

   3.遍历set集合的三种方法   

  // (1) set使用forEach遍历【最简洁了】
        set2.forEach(v => console.log(v))

          // (2) set使用for of遍历
          for (let x of set2) {
            console.log(x);
        }

          //(3) set 展开遍历
          [...set2].forEach(v => console.log(v))

 

  4. set 和filter()一起使用

  var set3 = new Set([1, 2, 3, 4])
        var arr  = new Set([...set3].filter(v => v > 2))
        console.log([...arr]);// [3,4]

 

     5. set的并集,交集,差集
   // set的并集(相当于数组合并)
        var set4 = new Set([1, 2, 3])
        var set5 = new Set([2, 4, 6])
        console.log([...set4, ...set5]); // [1,2,3,2,4,6]

        // set的交集
        console.log([...set4].filter(v => set5.has(v))); // [2]

        // set的差集
        console.log([...set4].filter(v => !set5.has(v))); // [1,3] 差集是在a不在b的元素