Skip to content

集合

表示无重复值的有序列表

创建集合

JavaScript
let set = new Set()

一些常用的操作

JavaScript
// 添加元素
set.add(2)
set.add("Hello")
// 无法添加一个重复内容的值
set.add("Hello")
set.add([1,2,4,6])
// 删除元素
set.delete("Hello")
// 检测是否存在
console.log(set.has(2))
console.log(set);

将集合转换为数组

JavaScript
let set2 = new Set([1,2,3,4,5,6,2,1,2,4])
console.log(set2)
// 扩展运算符
let arr = [...set2]
console.log(arr)

集合的特点

set中对象的引用无法被释放,如需要释放可使用WeakSet

javascript
let set3 = new Set()
let obj = {}
set3.add(obj)
console.log(set3);
// 释放当前的资源
set3.obj = null;
console.log(set3);

// 解决方法:WeakSet
// WeakSet,不能传人非对象的数据...不可被迭代等等
let set4 = new WeakSet()
let obj2 = {}
set4.add(obj)
console.log(set4);
// 释放当前的资源
set4.obj = null;
console.log(set4);