关于es6 new Set

2024-04-13  本文已影响0人  木上

个人理解new Set,集合介于es5普通数组与哈希数组之间。既可以取数组的长度又可以有hash的对应关系保持唯一性。

1.利用唯一性快速去重

let a = [1,1,2,2,3,3,4,4];
console.log([...new Set(a)]) //[1,2,3,4];
console.log(a) // [1,1,2,2,3,3,4,4];

组数与集合之间相互转化的过程并不会操作原数组

2.快速查询是否包含某个值
new Set([1,2,3,4]).has(1)//true;
这个方法跟数组的includes()几乎没什么区别。

3.利用唯一性,add如同数组includes跟push的两步操作
let list = new Set([1,2,3]);
list.add(4);
console.log(list)//[1,2,3,4];
list.add(4);
console.log(list)//[1,2,3,4];
4.利用has,delete与add方法操作new Set可以获得并集与交集

并集

let list1 = [1,2,3];

let list2 = [3,4,5];

let newList= new Set(list1);
for(let elem of list2){
   newList.add(elem);
}
console.log(newList)//[1,2,3,4,5]

交集

let list1 = [1,2,3];

let list2 = [3,4,5];

let newList= new Set();

for(let elem of list1){

      if(new Set(list2) .has(elem)){

        newList.add(elem);

    }

}

console.log(newList)//[3]

上一篇下一篇

猜你喜欢

热点阅读