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