ES6中新增的一种复杂数据结构,特点
- 是多个值得无序集合
- 不会有重复成员,重复的会被自动过滤
声明
const setObj = new Set() // 创建一个空setconst setObj = new Set([1,1,2,3]) // 将数组转为set, 会去除重复元素
- 使用
Set构造函数创建实例 Set可以接收一个数组或可迭代对象,将其迭代内容添加进set中,并且会去除重复内容
操作
添加
Set.prototype.add(value) //添加值
add会将操作的set返回,因此可以链式调用- set的内容不能直接修改,只能先删除再添加
setObje.add('777').add('888')
删除/清空
Set.prototype.delete(value) //删除值
Set.prototype.clear() //清空set
delete会返回布尔值,成功true,失败falseclear没有返回值
判断
setObj.has(value) //判断是否有指定值
setObj.size //set中值的数量,是个扩展属性(getter)
has返回布尔值size返回数值,是个属性
遍历
Set.prototype.forEach(item => {})
- 遍历set中的每一个成员,不可中断
其他API
Set.prototype.keys() // key集合
Set.prototype.values() // value集合
Set.prototype.entrys() // 键值对集合
- 都是返回一个SetIterator(遍历器)
