ES6 中的 Set 和 WeakSet 的使用详解

阅读时长 4 分钟读完

ES6 引入了两种新的集合类型 Set 和 WeakSet,它们比传统的数组和对象更加强大和灵活。本文将详细介绍 Set 和 WeakSet 的使用,并提供一些示例代码,帮助读者更好地理解它们的用途和使用方法。

Set

Set 是 ES6 中一种新的集合类型,它类似于数组但是成员唯一且无序。Set 中的成员可以是任何类型的值。通过 Set 可以方便地去重,判断一个元素是否存在于集合中,对两个集合求并集、交集、差集等操作。

创建 Set

使用 Set 的构造函数可以创建一个空的 Set 实例:

如果希望在创建时就向 Set 中添加元素,可以把要添加的元素作为参数传入构造函数:

Set 属性和方法

Set 实例具有以下常用属性和方法:

  • size:返回 Set 中元素的数量。
  • add(value):向 Set 中添加元素,如果元素已经存在则不会重复添加。
  • delete(value):从 Set 中删除指定元素,如果元素不存在则不会报错。
  • has(value):判断 Set 中是否包含指定元素。返回值为布尔类型。
  • clear():清空 Set 中的所有元素。

Set 示例

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

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

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

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

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

WeakSet

WeakSet 和 Set 类似,也是一种集合类型,但是它只能存储对象类型的成员,而且它的成员是弱引用,不会影响对象的垃圾回收。WeakSet 中的成员也是唯一且无序的。

创建 WeakSet

使用 WeakSet 的构造函数可以创建一个空的 WeakSet 实例:

WeakSet 不支持直接向其中添加成员,需要通过其 add() 和 delete() 方法来添加和删除元素。注意,加入 WeakSet 中的成员必须是对象。

WeakSet 属性和方法

WeakSet 实例具有以下常用属性和方法:

  • add(value):向 WeakSet 中添加元素,如果元素已经存在则不会重复添加。
  • delete(value):从 WeakSet 中删除指定元素,如果元素不存在则不会报错。
  • has(value):判断 WeakSet 中是否包含指定元素。返回值为布尔类型。

WeakSet 示例

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

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

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

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

总结

Set 和 WeakSet 是两种强大的集合类型,它们可以有效地帮助我们去重、快速查找元素、取集合的交、并、差等操作。在实际开发过程中,我们可以根据需要选用不同的集合类型来优化代码。同时,在使用 WeakSet 时需要注意对象生命周期和内存泄漏等问题,以保证代码的健壮性和性能。

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

纠错
反馈