在es6中新增了Set數據結構,它與數組類似,不同的是Set中的值是唯一的。
new Set()創建實例時可以傳入數組,初始化set。
應用一:數組去重
let arr = [1,2,3,1,2] let set = new Set(arr)
let resArr = [...set]
console.log(resArr)
或者使用數組的from()方法,將set轉換為數組
let arr = [1,2,3,1,2] let set = new Set(arr) let resArr = Array.from(set) console.log(resArr)
應用二:兩個數組求交集
let arr1 = [1,2,3,1,2]
let arr2 = [1,2,4,5,1,2,4]
let set1 = new Set(arr1)
let set2 = new Set(arr2)
let sameArr = [...set1].filter(item => set2.has(item))
console.log(sameArr)
通過使用Set實例對象的has()方法,判斷set2中是否含有item,含有返回true,否則返回false
應用三,兩個數組的差集,與交集類似
let arr1 = [1,2,3,1,2] let arr2 = [1,2,4,5,1,2,4] let set1 = new Set(arr1) let set2 = new Set(arr2) let diffArr = [...set1].filter(item => !set2.has(item)) console.log(diffArr)