Set 对象和WeakSet对象

  Set对象是值的集合,你能够按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是惟一的,一种有效去重方式.数组

const set1 = new Set([1, 2, 3, 4, 5]);

console.log(set1.has(1));

Set.prototype.add(value)函数

Set对象尾部添加一个元素。返回Set对象。this

Set.prototype.clear()移除Set对象内的全部元素。spa

Set.prototype.delete(value)移除Set的中与这个值相等的元素,返回Set.prototype.has(value)在这个操做前会返回的值(即若是该元素存在,返回true,不然返回false)。Set.prototype.has(value)在此后会返回false。prototype

Set.prototype.entries()返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的全部元素的值的[value, value]数组。为了使这个方法Map对象保持类似, 每一个值的键和值相等。翻译

Set.prototype.forEach(callbackFn[, thisArg])按照插入顺序,为Set对象中的每个值调用一次callBackFn。若是提供了thisArg参数,回调中的this会是这个参数。code

Set.prototype.has(value)返回一个布尔值,表示该值在Set中存在与否。对象

Set.prototype.keys()values()方法相同,返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的全部元素的值。blog

Set.prototype.values()返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的全部元素的值。继承

Set.prototype[@@iterator]()返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的全部元素的值。

 

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set

 

WeakSet

new WeakSet([iterable]);

若是传递了可迭代对象,则其全部元素都将添加到新对象中WeakSet。null被视为未定义

属性

  • WeakSet.length: 0

  • WeakSet.prototype

    表示WeakSet构造函数的原型。容许向全部WeakSet对象添加属性。

方法

全部WeakSet实例都继承自WeakSet.prototype。

  • WeakSet.prototype.constructor

  • WeakSet.prototype.add(value)

  • WeakSet.prototype.has(value)

  • WeakSet.prototype.delete(value)

var ws = new WeakSet()
console.log(ws);
var obj = {a:1}
ws.add(obj)
var ws2 = ws.has(obj)
console.log(ws2);