es6中set的使用方式
2020-11-07 本文已影响0人
黑白说程序
es6中的set主要是作用是一是对数组去重,set的将数组去重实例化 ,二是对数组交集 合并、差集
var arr=['a','b',1,2,1,3];
var newarr=new Set(arr);
console.log(newarr) //输出 {"a", "b", 1, 2, 3}
set的的方法有以下几种
clear 清空内容 返回的是underfined
newarr.chear() // 清空数组内容 并返回 undefined
console.log(newarr.chear() ) // 输出undefined
console.log(newarr ) //输出{}数组为空
add 增加数组内容,返回的是数组本身
var arr=['a','b',1,2,1,3];
var newarr=new Set(arr);
console.log(typeof newarr) //输出object返回的是对象
newarr.add(1)
console.log(arr) //返回的值不变,因为里面有重复的,不可以添加重复的值
newarr.add(4)
console.log(newarr) //输出{"a", "b", 1, 2, 3,4}
console.log(newarr.add(5)) //输出{"a", "b", 1, 2, 3,4,5} 他返回的是数组本身,所以add是可以用链式写法
has 判断是否包含某个值,返回的是布尔值
var arr=['a','b',1,2,1,3];
var newarr=new Set(arr);
newarr.has(1) //返回的值是true
使用set取数组去重合并
let arr1=[1,2,3]
let arr2=[1,3,4]
let arr3=new Set([...arr1,...arr2]) //注意这里是对家中括号
console.log(arr3); //输出 {1, 2, 3, 4}
使用set取数组交集
let arr1 = [1, 2, 3]
let arr2 = [1, 3, 4]
let arr4 = new Set(arr2)
let arr3 = new Set([...arr1].filter(item => {
return arr4.has(item)
}))
console.log(arr3); //输出 {1, 3,}
##使用set取数组差集
```javascript
let arr1 = [1, 2, 3]
let arr2 = [1, 3, 4]
let arr4 = new Set(arr2)
let arr3 = new Set([...arr1].filter(item => {
return !arr4.has(item)
}))
console.log(arr3); //输出 {2} 2是arr1如arr2的差集,4是arr2和arr1的叉积