Sets
定义:没有重复值的集合
创建
通过new Set(param)创建Set集合,其中param可以是任意的可迭代对象
属性和方法
- 获取集合大小:
set.size - 添加一项:
set.add(item) - 删除一项:
set.delete(item) - 删除全部:
set.clear() - 判断是否含有某个值:
set.has(item),返回true/false - 遍历:
set.forEach(callback),callback的参数依次是:(value, key, set),其中value等于key
转化为Array
使用...将Set转化为Array
Weak Sets
创建:
new WeakSet(param),param必须是object或者元素仅仅是object的数组区别
Strong Set:它会存储对象的引用,导致对象不能进行垃圾处理释放内存。Weak Set- 只会存储
weak object references,不会妨碍垃圾收集。 add/delete/has方法的参数只能是对象- 不能被迭代,所以没有
forEach方法,也没有size属性,也不能通过...转化为数组
- 只会存储
Maps
定义:key/value的集合
创建:通过new Map()创建Map集合
key值:Map的key值可以是对象
属性和方法
- 获取集合中键值对的个数:
map.size - 判断是否含有某一项:
map.has(key) - 删除某一项:
map.delete(key) - 删除所有:
map.clear() - 添加或修改某一项:
map.set(key, value) - 获取某一项的值:
map.get(key) - 遍历:
map.forEach(callback),callback的参数依次是:(value, key, set)
Weak Maps
WeakMaps 是一种存储weak object references的方式,特性和WeakSet一致