写在前面

Set 是 JavaScript 的内置对象,Set 对象存储任何类型的唯一值,也是个 JS 中的迭代对象,简单来说,可以看成是一个不允许重复存储数据的数组,其里面的键值对的存储方式也是 下标(0/1/2…):value 的方式,可以当成一个有不能重复限制条件的数组使用。其对应的 API 如下:

1. 创建一个 Set 对象

  1. //语法,参数为一个可迭代对象
  2. //如果不指定此参数或其值为null,则新的 Set为空。
  3. new Set([iterable]);
  4. //实例
  5. let set = new Set([1,2,3,4]);
  6. console.log(set);//输出1,2,3,4
  7. let set1 = new Set([1,1,2,2,3,3]);
  8. console.log(set1);//输出1,2,3,不会重复存储
  9. let set2 = new Set();
  10. console.log(set2);//输出空

2. 属性

2.1 size

Set 对象的值的个数,相当于数组的 length

3. 方法

3.1 has(value)

返回一个布尔值,表示该值在Set中存在与否。

3.2 add(value)

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

3.3 delete(value)

移除Set的中与这个值相等的元素。

3.4 clear()

移除Set对象内的所有元素。

4. Set 的妙用

4.1 用于数组去重

Set 对象可用于数组去重,将当前数组作为参数创建一个 Set 对象,然后展开放入数组 [ ] 中

  1. let array = [1,5,2,3,4,2,3,1,3,4];
  2. function unique(array){
  3. return [...new Set(array)];
  4. }
  5. console.log(unique(array));//[1, 5, 2, 3, 4]