集合
- 无序且唯一的数据结构
- Es6 有集合名为set
- set 常用的操作:去重,判断某元素是否在集合中,求交集
去重
const arr1 = [1,1,2,2];const arr2 = [...new Set(arr1)]
判断元素是否在集合中
const arr1 = [1,1,2,2];const set = new Set(arr1);const has = set.has(3);console.log('has');console.log(has)//false
求交集&&差集
const arr1 = [1,1,2,2];const set = new Set(arr1);const set2 = new Set([2,3]);const theSame = [...set].filter((item)=>{set2.has(item)})const deferent = [...set].filter((item)=>{!set2.has(item)})console.log('theSam1');console.log(theSame);console.log('deferent');console.log(deferent)
const arr1 = [1,1,2,2];const set = new Set(arr1);const set2 = new Set([2,3]);const set3 = [...set].filter((item)=>{set2.has(item)})
set操作
使用Set对象:New add delete has size
迭代Set:多种迭代方法,set与array互转,求交集/差集
add (set对象里面添加元素)
let mySet = new Set();mySet.add(1);mySet.add(2);mySet.add(2);console.log(mySet);//{1,2}let o = {a:1,b:2,c:3}mySet.add(o);console.log(mySet);//{1,2,value:{a:1,b:2,c:3}}
delete (set对象里面删除元素)
let mySet = new Set();mySet.add(1);mySet.add(2);mySet.add(2);mySet.delete(2);console.log(mySet);//{1}
迭代一个Set(循环set)
let mySet = new Set();mySet.add(1);mySet.add(2);for(let item of mySet){console.log(item)}// 1// 2for(let item of mySet.keys()){console.log(item)}for(let item of mySet.values()){console.log(item)}
Set和Array互转
//1.集合转数组let mySet = new Set();let arr1 = [...mySet];//2.集合转数组let mySet1 = new Set();let arr2 = Array.from(mySet1);//1.数组转集合let myArra1 = new Set([1,2,3,4]);
