set集合概念:
- 一个无 重复元素的列表
- 主要应用场景:检测给定值的某个集合是否存在
map集合概念:
- 集合内含多组键值对
- 主要应用场景:缓存 频繁取用的数据,获取已存的信息
ES5用对象模拟set集合和map集合
存在如下限制:
- 对象属性必须是字符串
- 对象做为属性名存在问题
- 属性值是假值
ES6中set和map
一、set
- 建立set集合 new Set()
- 向集合中添加数据 set.add()
- size属性获取集合元素数量 set.size
set的特性
一、不会对存值强制类型转换
二、屡次调用add方法并传入相同的值做为参数,后续调用将被忽略
三、可用数组初始化Set集合,会过滤重复值,保证集合元素惟一
注意:
Set构造函数可接受全部可迭代的对象做为参数,数组、set集合、map集合都是可迭代的数组
方法
- has() 检测Set集合是否存在某个值
- delete() 移除Set集合中某一个元素
- clear() 一处集合中全部元素
forEach方法
forEach回调函数接收3个参数缓存
- set集合中下一个索引的位置
- 与第一个参数同样的值
- 被遍历的set集合自己
forEach方法第二个参数与数组同样,须要在回调函数中使用this,可将它做为第二个参数传入forEach方法
若使用箭头函数,无需将this做为参数传入回调。函数
set集合转为数组
数组转setthis
let set = new Set([1,2,3])
set 转数组code
array = [...set]
可应用场景:过滤重复值,最后输出无重复的新数组对象
二、weakSet
三、map
四、weakMap