set集合操作

// ES6中集合名为Set
// Set操作
// 使用Set对象:new, add, delete, has, size
// 迭代Set:多种迭代方法,Set与Array互转,求交集/差集

const arr1 = [1,1,2,2]
const arr2 = [2,3]

// 去重

let myArr = [...new Set(arr1)] // [1,2]

// 判断元素是否在集合中

let mySet = new Set(arr1)
let isHas = mySet.has(1) // true
let isHas2 = mySet.has(3) // false

// 求交集

let mySet1 = new Set(arr1)
let mySet2 = new Set(arr2)
let mySet3 = new Set([...mySet1].filter(item => mySet2.has(item)))

// set集合转成数组

let intersection = [...mySet3] // [2]
let intersection2 = Array.from(mySet3) // [2]

// 求差集

let mySet4 = new Set([...mySet1].filter(item => !mySet2.has(item))) // arr2在arr1中没有的值
let difference = [...mySet4] // [1]

// 备注:[…arr] 和 Array.from(arr)是两种集合转成数组的方法

// 迭代

for(let item of mySet) console.log(item)
for(let item of mySet.keys()) console.log(item)
for(let item of mySet.values()) console.log(item)
for(let [key,value] of mySet.entries()) console.log(key,value) // 在set集合中key和value一样

// 数组转成set集合

let set = new Set([1,2,3,4])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值