ES6学习-7.Set集合与Map集合

一、Set集合

Set类型是一种有序列表,其中包含了一些相互独立的非重复值,可以快速访问其中的数据,更有效的追踪各种离散值。

1、创建Set集合并添加元素

创建并添加相关元素的代码如下:

2、has(),delete(),clear()方法

has()方法判断Set集合是否存在某个值。

delete()方法删除Set集合中的某一个元素。

clear()方法移除集合中的所有元素。

3、Set集合的forEach()方法

代码如下:

forEach回调中如果要使用this,就需要把this传入进去,但如果使用箭头函数则无需传入,如下面的代码:

4、将Set集合转换成数组

代码如下:

5、Weak Set集合

用Set集合保存的变量和对象,即使初始对象被回收或者释放,但是Set集合中一样存在,例如下面的代码:

所以有时候,当我们把原始引用清楚的时候,也希望Set集合也会被垃圾回收机制回收掉。这个时候就可以使用Weak Set集合,当原始引用被设置成null,清除的时候,Weak Set集合就会被垃圾回收机制也回收掉。

Weak Set初始化和Set是一样,支持add(),has(),delete()方法。但是有几点要注意:

*Weak Set集合不支持传入非对象参数,会报错。

*Weak Set集合不可迭代,所以不能用for-of循环。

*Weak Set集合不暴露任何迭代器。

*Weak Set集合不支持forEach()方法。

*Weak Set集合不支持size属性。

所以当你只需要跟踪对象引用,你更应该使用Weak Set集合而不是普通的Set集合。


二、Map集合

Map是一种存储许多键值对的有序列表,其中的键名和对应的值支持所有的数据类型。所以当键名分别为5和"5"时,这是一个两个独立的键。并不会像对象一样,强制转化成字符串。

1、初始化和添加

2、支持的方法

has(key)  检测指定的键名在Map集合中是否已经存在。

delete(key)  从Map集合中移除指定键名以及其对应的值。

clear()  移除Map集合中的所有键值对。

3、Map集合的初始化方法

可以传入数组初始化,例如:

4、Map集合的forEach()方法

和Set集合的forEach方法相似,例如:

5、Weak Map集合

Weak Map集合中的键名必须是一个对象,如果使用非对象键名会报错。

Weak Map集合最大的用途就是保存Web页面中的Dom元素。一些库如果自定义一些Dom元素,则可以使用Weak Map集合来保存。

支持的方法:has(),delete(),clear()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容