es6阮一峰
Set用法
类似于数组,但是成员的值都是唯一的,没有重复的值。
只有NaN和 === 不一样 其他都是一样做比较的
var set = new Set(NaN)
set.add(NaN);
set // Set {NaN}
set.size //1
set.delete() //删除某个值 返回值表示是否删除成功
set.has() // 返回布尔值 表示是否有某个值
set.clear() // 清空所有项 没有返回值
[...new Set('ababbc')] // ['a','b','c']
也可以使用Array.from解开Set实例
let set = new Set(['red', 'green', 'blue']);
for (let item of set.keys()) { console.log(item);}// red green blue
for (let item of set.values()) { console.log(item);}// red green blue
for (let item of set.entries()) { console.log(item);}// ["red", "red"] ["green", "green"] ["blue", "blue"]
Set.prototype[Symbol.iterator] === Set.prototype.values // true 所以可以用for...of循环得到每一项值
for (let i of set) {
console.log(i);//获取set内部的每一项
}
set.forEach((value, key) => console.log(key + ' : ' + value)) // key和value 值一样
可以把Set实例看做数组 进行map和filter操作 和数组用法类似
const p = [item,item,...] // item必须是对象也可以是数组 否则报错
const set = new WeakSet(b);
set.add(value)
set.delete(value)
set.has(value)
set.size // undefined 没有size和forEach
set.forEach // undefined