set
1.表示无重复值的有序列表
//数组去重
let a = [1,2,3,4,1,2,3,4]
let set = new Set(a)
console.log(set)
//Set{1,2,3,4}
let arr = [...set]
//通过扩展运算符把set变为数组
console.log(arr)
//[1,2,3,4]
2.set常用API
方法 | 作用 |
---|---|
add | 添加 |
delete | 删除 |
has | 检测 |
size | 大小 |
3.WeakSet
set中对对象的引用无法释放
let set2 = new Set(), obj = {}
set2.add(obj)
//释放内存
obj = null
console.log(set2);
WeakSet中可以释放
1.不能传入非对象类型的参数
2.不可迭代(遍历不出来)
3.没有forEach()
4.没有size属性
let set3 = new Set(), obj = {}
set3.add(obj)
//释放内存
obj = null
console.log(set3);
Map
1.键值对的有序列表,键和值可以是任意类型
let map = new Map()
map.set(['a', [1, 2, 3]], 'hello')
console.log(map);
//Array(2)=>'hello'
2.Map常用API
方法 | 作用 |
---|---|
set | 添加 |
get | 获取 |
has | 校验 |
delete | 删除 |
clear | 清空 |