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

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

你可能感兴趣的:(es6,javascript,前端)