Set和Map主要的应用场景在于数据重组和数据储存
Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构。
Set
简介:
ES6新增的一种数据结构,类似于数组,该集合里面的数据是无序且唯一。是以 [value, value]的形式储存元素
实例方法:
1.add():新增
2.delete():删除
3.has():判断是否存在目标元素
4.clear():清空
例子:
5.keys():返回包含集合中所有键的迭代器
6. values():返回包含集合中所有值的迭代器
7.entries():返回包含集合中所有键值对的迭代器
8.forEach(callback,thisArg):callback用于对集合中的元素做操作。
与其他数据结构的相互转换:
1.转换成数组
Map
简介:
是以 [key, value]的形式储存元素,存储的数据也是不重复的。
实例方法:
1.set(key,value):新增
2.delete(key):删除
3.has(key):判断是否存在目标元素
4.clear():清空
注意:
在使用set和get时,只有对同一对象的引用才会将其视为同一个键,否则,就会无法获取到该键值,返回undefined。这就很好的解决了同名属性碰撞的问题,当我们扩展别人的库时,就不用担心由于属性同名造成的问题了。
5.keys():返回包含字典中所有键的迭代器
6. values():返回包含字典中所有值的迭代器
7.entries():返回包含字典中所有键值对的迭代器
8.forEach():遍历字典中的所有成员。
与其他数据结构的相互转换:
1.Map和Array相互转换
2.Map和Object相互转换
3.Map和Json相互转换
WeakSet
简介:
允许将弱引用对象存储在一个集合中,所以垃圾回收机制不考虑WeakSet对该对象的应用,如果没有其他的变量活属性应用的话,该对象会被垃圾回收掉。
实例方法:
add():新增元素
delete():删除元素
has():判断是否存在目标元素
WeakMap
简介:
WeakMap对象是一组键值对的集合,其中的键是弱引用对象,值可以是任意类型。
实例方法:
1.set(key,value):新增
2.delete(key):删除
3.has(key):判断是否存在目标元素
4.get(key):、获取key的关联对象