ES6 中的 Set 数据结构详解

Set 是 ES6 中新增的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。

创建 Set

创建 Set 可以使用以下两种方式:

-- ------ --- ------ ---
----- ---- - --- ------- -- ----
------------------ -- --- --- -- --

-- ------ ------------------- ------
----- ---- - --- ------
------------
------------
------------
------------------ -- --- --- -- --

Set 的属性和方法

属性

  • Set.prototype.size:返回 Set 实例的成员总数。

方法

  • Set.prototype.add(value):添加某个值,返回 Set 结构本身。
  • Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • Set.prototype.has(value):返回一个布尔值,表示该值是否为 Set 的成员。
  • Set.prototype.clear():清除所有成员,没有返回值。

Set 的遍历方法

Set 结构的实例有四个遍历方法,可以用于遍历成员。

  • Set.prototype.keys():返回键名的遍历器。
  • Set.prototype.values():返回键值的遍历器。
  • Set.prototype.entries():返回键值对的遍历器。
  • Set.prototype.forEach():使用回调函数遍历每个成员。
----- --- - --- ------- -- ----

--- ---- ---- -- ----------- -
  ------------------ -- -- -- -
-

--- ---- ---- -- ------------- -
  ------------------ -- -- -- -
-

--- ---- ---- -- -------------- -
  ------------------ -- --- --- --- --- --- --
-

------------------- ---- -- ------------------ ------ -- - -- - -- - -

Set 与数组的互相转换

Set 和数组之间可以互相转换,可以使用以下两个方法:

  • Array.from():将 Set 结构转为数组。
  • Set.prototype[Symbol.iterator]:Set 结构的默认遍历器是 values 方法,可以使用扩展运算符将其转为数组。
----- --- - --- ------- -- ----
----- ---- - ----------------
----- ---- - ---------
------------------ -- --- -- --
------------------ -- --- -- --

Set 的应用场景

  • 数组去重
  • 数组合并去重
-- ----
----- --- - --- -- -- -- -- ---
----- --- - --- ---------
----- ------ - ----------------
-------------------- -- --- -- --

-- ------
----- ---- - --- -- ---
----- ---- - --- -- ---
----- --- - --- ------------- ----------
----- ------ - ----------------
-------------------- -- --- -- -- --

总结

Set 是 ES6 中新增的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。Set 有许多有用的属性和方法,可以方便地对成员进行操作和遍历。Set 与数组之间可以互相转换,非常方便。在实际开发中,可以使用 Set 来进行数组去重和数组合并去重等操作。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d40fb6add4f0e0ffc14a7e