Set 对象

Set 对象是值的集合, Set中的元素只会出现一次,即 Set 中的元素是唯一的。

创建一个Set对象 Set()

Set 实例属性

  Set.prototype.size 返回 Set 对象中的值的个数

Set实例方法

  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)  返回一个布尔值,表示该值在Set 中存在与否。

  Set.prototype.entries()  返回一个新的迭代器对象,该对象包含Set 对象中所有元素的值的[value, value]数组。为了使这个方法和Map对象保持相似, 每个值的键和值相等。

  Set.prototype.values()  返回一个新的迭代器对象,该对象包含Set 对象中所有元素的值。

  Set.prototype.keys()  与values()方法相同,返回一个新的迭代器对象,该对象包含Set 对象中所有元素的值。

  Set.prototype.forEach(callBackFn)  Set对象的遍历,为Set对象中的每一个值调用一次callBackFn。

  Set.prototype.forEach(callBackFn)  Set对象的遍历,为Set对象中的每一个值调用一次callBackFn。

实例:

  let mySet = new Set([ 2, 3 ]);

  mySet.add(1); // Set [ 2,3,1]

  mySet.size; // 3

  mySet.has(1); // true

  mySet.has(5); // false

  mySet.delete(3); // true

  mySet.delet(3); // false 3元素已经被移除

  mySet.size; // 2

Set的迭代:

  for (let item of mySet.keys()) { console.log(item); } // 2 // 1

  for (let item of mySet.values()) { console.log(item); } // 2 // 1

  for (let item of mySet.entries()) { console.log(item); } // [2,2]  // [1,1]

 

Set 结构的实例默认可遍历,默认遍历器生成函数就是它的values方法

  Set.prototype[Symbol.iterator] === Set.prototype.values

故可以省略values方法直接使用for...of遍历Set

  for (let item of mySet.keys()) { console.log(item); } // 2 // 1

数组去重

let arr = [1,2,3,5,4,3];

let mySet = new Set(arr);

[...mySet];// [1.2.3,5,4]

或者使用 Array.form(mySet);  // [1.2.3,5,4]

 

posted @ 2020-10-13 16:52  静夜思雨  阅读(430)  评论(0编辑  收藏  举报