//实用操作
var arr = [1, 1, 1, 2, 2, 2, 3, 33, 3,]
var a = new Set(arr)
console.log(Array.from(arr));//(9) [1, 1, 1, 2, 2, 2, 3, 33, 3]
//添加
var s = new Set([1, 2, 3]);
//或者用add()
s.add('a');
s.add('b');
s.add('c');
console.log(s);//Set(6) {1, 2, 3, 'a', 'b', …}
//只有一个,不会有相同的值
// size属性:获取成员的个数。
console.log(s.size);//6
// delete( )方法:用户删除Set结构中的指定值,删除成功返回:true,删除失败返回:fasle
s.delete('a');
console.log(s);//Set(5) {1, 2, 3, 'b', 'c'}
// clear( )方法:清除所有成员。
s.clear()
console.log(s);//Set(0) {size: 0}
// has( )方法:判断set结构中是否含有指定的值。如果有,返回true;如果没有,返回fasle。
console.log(s.has(1));//false
// entries( )方法:返回一个键值对的遍历器。
var b = new Set(['a', 'b', 'c']);
console.log(b.entries());//SetIterator {'a' => 'a', 'b' => 'b', 'c' => 'c'}
//keys( )方法:返回键名的遍历器。
// values()方法:返回键值的遍历器。
console.log(b.keys());//SetIterator {'a', 'b', 'c'}
console.log(b.values());//SetIterator {'a', 'b', 'c'}
for (let [i, v] of b.entries()) {
console.log(i + '' + v);//aa bb cc
}
// forEach()方法:遍历每一个成员。
b.forEach(function (value, key) {
console.log(value, key);//a a b b c c
})
// WeakSet结构同样不会存储重复的值,不同的是,它的成员必须是对象类型的值。
let ws = new WeakSet([{ "age": 18 }])
console.log(ws);//WeakSet {{…}}
// 屌丝写法
// let ws = new WeakSet([1, 2])
// console.log(ws);