8

ES6之set、weakSet、map、weakMap学习总结

 3 years ago
source link: https://segmentfault.com/a/1190000038835018
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

set集合概念:

  1. 一个无 重复元素的列表
  2. 主要应用场景:检测给定值的某个集合是否存在

map集合概念:

  1. 集合内含多组键值对
  2. 主要应用场景:缓存 频繁取用的数据,获取已存的信息

ES5用对象模拟set集合和map集合

存在以下限制:

  1. 对象属性必须是字符串
  2. 对象作为属性名存在问题
  3. 属性值是假值

ES6中set和map

1、set

  1. 创建set集合 new Set()
  2. 向集合中添加数据 set.add()
  3. size属性获取集合元素数量 set.size

set的特性

1、不会对存值强制类型转换
2、多次调用add方法并传入相同的值作为参数,后续调用将被忽略
3、可用数组初始化Set集合,会过滤重复值,保证集合元素唯一
注意:
Set构造函数可接受所有可迭代的对象作为参数,数组、set集合、map集合都是可迭代的

  1. has() 检测Set集合是否存在某个值
  2. delete() 移除Set集合中某一个元素
  3. clear() 一处集合中所有元素

forEach方法

forEach回调函数接收3个参数

  1. set集合中下一个索引的位置
  2. 与第一个参数一样的值
  3. 被遍历的set集合本身

forEach方法第二个参数与数组一样,需要在回调函数中使用this,可将它作为第二个参数传入forEach方法
若使用箭头函数,无需将this作为参数传入回调。

set集合转为数组

数组转set

let set = new Set([1,2,3])

set 转数组

array = [...set]

可应用场景:过滤重复值,最后输出无重复的新数组

2、weakSet

3、map

4、weakMap


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK