SET
数组去重:[...new Set(arr)]
在集合中两个对象总是不相等的
操作:
- set.add(value) 为集合添加一个元素
- set.delete(value) 删除集合中的某一个元素,返回的是布尔值表示是否删除成功
- set.has(value) 查询该值是否子集合之中
- set.size() 返回集合公有多少个元素
- set.get()和set.set()
- set.clear() 清空所有集合成员
- set.keys()与set.values() 返回集合元素的一个遍历器
for (let item of set.keys())
- set.forEach((value, key) =>{})遍历集合
求并集1
2// a,b分别为两个集合
let union = new Set([...a, ...b])
求交集
1 | // a,b分别为两个集合 |
求差集
1 | let diff = new Set([...a].filter(element=>!b.has(element))) |
WeakSet
特点:
- WeakSet 的成员只能是对象,而不能是其他类型的值
- WeakSet 中的对象都是弱引用,即垃圾回收机制不考虑 WeakSet 对该对象的引用
- WeakSet 不可遍历,并且没有size
1 |
|
Map
特点:
- 是一个 key 值可以是对象的对象
- Map 转数组 […map]
WeakMap
特点:
- 不结束除了对象之外的类型作为 key
- WeakMap的弱引用知识针对 key,value正常引用
- 没有遍历操作
本文为原创文章作为学习交流笔记,如有错误请您评论指教
转载请注明来源:https://isliulei.com/article/Set与Map/