Set对象允许存储任何类型的唯一值,无论是原始值还是对象引用。可用于数组,集合去重等操作,拥有size属性
const set1 = new Set([1, 2, 3, 4, 5,4]);
console.log(set1.has(1));
// expected output: true
console.log(set1.has(5));
// expected output: true
console.log(...set1);
// expected output: 1,2,3,4,5
语法
new Set([iterable]);
- 参数
iterable
如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。 - 返回值
一个新的Set对象。
API
Set.prototype.add(value)
在Set对象尾部添加一个元素。返回该Set对象。Set.prototype.clear()
移除Set对象内的所有元素。Set.prototype.delete(value)
移除Set的中与这个值相等的元素,返回- -
Set.prototype.has(value)
在这个操作前会返回的值(即如果该元素存在,返回true,否则返回false)。Set.prototype.has(value)在此后会返回false。 Set.prototype.entries()
返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值的[value, value]数组。为了使这个方法和Map对象保持相似, 每个值的键和值相等。Set.prototype.forEach(callbackFn[, thisArg])
按照插入顺序,为Set对象中的每一个值调用一次callBackFn。如果提供了thisArg参数,回调中的this会是这个参数。Set.prototype.has(value)
返回一个布尔值,表示该值在Set中存在与否。Set.prototype.keys()
与values()方法相同,返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。Set.prototype.values()
返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。Set.prototype[@@iterator]()
返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
官方参考文档 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set