Set
Set:
一种新的数据结构,set中的值是唯一的,是数据结构中的集合
声明方式:
const set = new Set([1,2,2,3,4]) console.log(set) // {1, 2, 3, 4}
常用方法:
set.add(5) // 添加元素 set.add(6).add(7) // 支持链式操作 set.delete(1) // 删除元素,如果元素是个对象要特别注意 set.clear() // 清空 set.has(2) // 判断set中是否有某个元素 set.size // set的大小
遍历:
跟数组类似,可以用for...of forEach等,set中的键和值是一样的
应用场景:
// 数组去重 const arr = [1,2,3,3,4,4] const set = new Set (arr) console.log([...set]) // [1, 2, 3, 4]
//合并数组并去重 const arr1 = [1,2,3,4] const arr2 = [3,4,5,6] const set = new Set([...arr1,...arr2]) console.log([...set]) // [1, 2, 3, 4, 5, 6]
//取交集 const arr1 = [1,3,4,5] const arr2 = [4,5,6,7,8,9] const set1 = new Set(arr1) const set2 = new Set(arr2) const res = arr1.filter( item => set2.has(item)) console.log(res) // [4,5]
//取差集 const arr1 = [1,3,4,5] const arr2 = [4,5,6,7,8,9] const set1 = new Set(arr1) const set2 = new Set(arr2) const res1 = arr1.filter( item => !set2.has(item)) const res2 = arr2.filter( item => !set1.has(item)) console.log(res1) // [1, 3] console.log(res2) // [6, 7, 8, 9] console.log([...res1,...res2]) // [1, 3, 6, 7, 8, 9]
WeakSet:
可以在WeakSet中临时存放一些对象,对对象绑定一些相关信息,当对象销毁时,WeakSet中的引用也会自动消失
WeakSet和Set的区别:
WeakSet只能存放对象,Set可以存放任意类型
Set可以循环遍历,WeakSet不可以
WeakSet是一种弱引用,不会被垃圾回收机制考虑

浙公网安备 33010602011771号