JavaScript 新特性:Map 和 Set

阅读时长 4 分钟读完

在 ECMAScript 6 中,JavaScript 引入了两个新的数据结构类型:Map 和 Set。这些数据结构可以用来存储一组键值对,Map 用于存储任意类型的值,而 Set 则只能存储唯一的值。这两个数据结构与传统的对象和数组相比有很多优点,本文将详细介绍这些新特性及其用法。

Map

Map 类型提供了一种新的方式来存储键值对。与基于对象存储键值对的方式不同,Map 允许我们使用任意类型作为键,而不仅是字符串或数字。Map 提供了一组方法来进行增、删、查和遍历操作,下面是一些常见的用法和示例代码:

创建 Map

我们可以通过以下方式创建一个空的 Map:

如果需要指定 Map 的初始值,可以传入一个键值对数组或其他可迭代对象:

增加键值对

向 Map 中添加键值对的方法是 set,它接受两个参数分别为键和值:

删除键值对

从 Map 中删除键值对可以使用 delete 方法,它接受一个键作为参数:

查找值

查找 Map 中的值可以使用 get 方法,它接受一个键作为参数:

遍历 Map

Map 提供了四种遍历方式:keys、values、entries 和 forEach。它们分别返回 Map 中所有的键、值、以及键值对数组,或者是调用一个回调函数:

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

Set

Set 类型是一组无序且唯一的值的集合。它只能存储基本类型的值和引用类型的值,而不能存储对象或数组。Set 提供了一组方法来进行增加、删除、查找和遍历操作,下面是一些常见的用法和示例代码:

创建 Set

我们可以通过以下方式创建一个空的 Set:

如果需要指定 Set 的初始值,可以传入一个数组或其他可迭代对象:

增加值

向 Set 中添加值的方法是 add,它接受一个值作为参数:

删除值

从 Set 中删除值可以使用 delete 方法,它接受一个值作为参数:

查找值

查找 Set 中的值可以使用 has 方法,它接受一个值作为参数:

遍历 Set

Set 提供了三种遍历方式:keys、values 和 entries。它们分别返回 Set 中所有的值、以及键值对数组:

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

总结

通过本文的介绍,我们了解了 JavaScript 中的两个新特性:Map 和 Set。它们为我们提供了存储键值对的新方式,并且具有很多优点,例如支持存储任意类型的键以及自动去重。使用 Map 和 Set 可以让我们的代码更加优雅和高效。

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

纠错
反馈