在 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