ES6 中如何使用 Map 与 Set 完成集合操作

阅读时长 5 分钟读完

在现代的 JavaScript 开发中,Map 和 Set 是非常常见的数据结构。它们可以被用于很多场景中,如去重、数据存储、关联数据等。在 ES6 中, JavaScript 正式引入了 Map 和 Set 对象,为我们提供了更加便利的操作方式和更高效的性能。

Map

Map 对象是一种有序键值对的集合,其中的键可以是任何数据类型, 包括原始类型和对象引用。在实现上, Map 的主要优势是因为其内部的哈希表实现, 这使得它可以查询和删除键值对的效率非常高。

创建一个 Map

在 ES6 中,我们可以通过以下方式创建 Map 对象:

当然,我们也可以尝试将 Map 初始化一些键值对:

Map 的基本操作

在一个 Map 对象中,我们可以进行以下操作:

  • Map.set(key, value):添加一个键值对。
  • Map.get(key):获取给定键的值。
  • Map.has(key):检查给定键是否存在于 Map 中。
  • Map.delete(key):删除给定键和对应的值。
  • Map.clear():删除所有的键和值。

下面示例代码演示了常用操作:

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

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

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

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

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

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

Map 的迭代

Map 对象还支持迭代操作,可以通过以下方式:

  • Map.keys():获取所有的键。
  • Map.values():获取所有的值。
  • Map.entries():获取所有的键值对。

下面示例代码演示了迭代操作:

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

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

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

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

Set

Set 对象是一种无序且唯一的集合,它不允许成员重复。内部的实现也是使用哈希表,这样对于查找和删除元素操作更为高效。

创建一个 Set

在 ES6 中,我们可以通过以下方式创建 Set 对象:

当然,我们也可以尝试将 Set 初始化一些值:

Set 的基本操作

在一个 Set 对象中,我们可以进行以下操作:

  • Set.add(value):添加一个元素。
  • Set.has(value):检查给定元素是否存在于集合中。
  • Set.delete(value):删除给定的元素。
  • Set.clear():删除所有的元素。

下面的示例代码展示了 Set 的基本操作:

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

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

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

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

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

Set 的迭代

Set 对象也支持迭代操作,可以通过以下方式:

  • Set.values():获取所有的值。
  • Set.keys():与 Set.values() 方法作用相同。此方法存在的目的是为了与 Map 的 API 保持一致。
  • Set.entries():获取所有的元素。

下面的示例代码演示了 Set 的迭代操作:

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

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

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

结论

通过本文,我们已经学习了 ES6 中如何使用 Map 和 Set 对象完成集合操作。这些操作涉及到添加、删除、检查元素是否存在、以及迭代集合等方面,这些操作可以很好的提高我们的开发效率,特别是对于大量的元素和复杂的关联操作。希望此篇文章能够帮助大家更好地理解和熟练运用 ES6 中 Map 和 Set 对象的相关知识。

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

纠错
反馈