ES6中新增的一种复杂数据结构特点

  1. 是多个值得无序集合
  2. 不会有重复成员,重复的会被自动过滤

声明

  1. const setObj = new Set() // 创建一个空set
  2. const setObj = new Set([1,1,2,3]) // 将数组转为set, 会去除重复元素
  • 使用 Set 构造函数创建实例
  • Set 可以接收一个数组可迭代对象,将其迭代内容添加进set中,并且会去除重复内容

操作

添加

  1. Set.prototype.add(value) //添加值
  • add 会将操作的set返回,因此可以链式调用
  • set的内容不能直接修改,只能先删除再添加
    setObje.add('777').add('888')
    

删除/清空

Set.prototype.delete(value)               //删除值
Set.prototype.clear()                     //清空set
  • delete 会返回布尔值,成功true,失败false
  • clear 没有返回值

判断

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(遍历器)