set 汇合概念:
- 一个无 反复元素的列表
- 次要利用场景:检测给定值的某个汇合是否存在
map 汇合概念:
- 汇合内含多组键值对
- 次要利用场景:缓存 频繁取用的数据,获取已存的信息
ES5 用对象模仿 set 汇合和 map 汇合
存在以下限度:
- 对象属性必须是字符串
- 对象作为属性名存在问题
- 属性值是假值
ES6 中 set 和 map
1、set
- 创立 set 汇合 new Set()
- 向汇合中增加数据 set.add()
- size 属性获取汇合元素数量 set.size
set 的个性
1、不会对存值强制类型转换
2、屡次调用 add 办法并传入雷同的值作为参数,后续调用将被疏忽
3、可用数组初始化 Set 汇合,会过滤反复值,保障汇合元素惟一
留神:
Set 构造函数可承受所有可迭代的对象作为参数,数组、set 汇合、map 汇合都是可迭代的
办法
- has() 检测 Set 汇合是否存在某个值
- delete() 移除 Set 汇合中某一个元素
- clear() 一处汇合中所有元素
forEach 办法
forEach 回调函数接管 3 个参数
- set 汇合中下一个索引的地位
- 与第一个参数一样的值
- 被遍历的 set 汇合自身
forEach 办法第二个参数与数组一样,须要在回调函数中应用 this, 可将它作为第二个参数传入 forEach 办法
若应用箭头函数,无需将 this 作为参数传入回调。
set 汇合转为数组
数组转 set
let set = new Set([1,2,3])
set 转数组
array = [...set]
可利用场景:过滤反复值,最初输入无反复的新数组