ES6 中的 Set 和 Map

阅读时长 4 分钟读完

在前端开发中,我们经常需要处理一些数据集合,比如数组、对象等。ES6 中新增了 Set 和 Map 两种数据结构,它们可以更加方便地管理数据,让我们的开发效率更高。

Set

Set 是一种类似于数组的数据结构,但是它的成员都是唯一的,没有重复的值。Set 可以用来去除数组中的重复项。

创建 Set

可以通过以下方式创建一个 Set:

也可以通过 add 方法向 Set 中添加元素:

Set 的方法

Set 有以下常用的方法:

  • add(value):向 Set 中添加一个值,返回 Set 对象本身。
  • delete(value):删除 Set 中指定的元素,返回一个布尔值,表示删除是否成功。
  • has(value):判断 Set 中是否存在指定元素,返回一个布尔值。
  • clear():清空 Set 中所有元素。
  • size:返回 Set 中元素的个数。

Set 的遍历

Set 可以使用 for...of 循环遍历:

另外,Set 还有以下方法可以遍历:

  • keys():返回一个包含 Set 中所有键的迭代器。
  • values():返回一个包含 Set 中所有值的迭代器。
  • entries():返回一个包含 Set 中所有键值对的迭代器。

Map

Map 是一种键值对的数据结构,它与对象的区别在于,Map 的键可以是任意类型,而对象的键只能是字符串或 Symbol 类型。

创建 Map

可以通过以下方式创建一个 Map:

也可以通过 set 方法向 Map 中添加元素:

Map 的方法

Map 有以下常用的方法:

  • set(key, value):向 Map 中添加一个键值对,返回 Map 对象本身。
  • get(key):获取 Map 中指定键的值,如果不存在则返回 undefined。
  • delete(key):删除 Map 中指定的键值对,返回一个布尔值,表示删除是否成功。
  • has(key):判断 Map 中是否存在指定键,返回一个布尔值。
  • clear():清空 Map 中所有键值对。
  • size:返回 Map 中键值对的个数。

Map 的遍历

Map 可以使用 for...of 循环遍历:

另外,Map 还有以下方法可以遍历:

  • keys():返回一个包含 Map 中所有键的迭代器。
  • values():返回一个包含 Map 中所有值的迭代器。
  • entries():返回一个包含 Map 中所有键值对的迭代器。

总结

Set 和 Map 是 ES6 中新增的数据结构,它们可以更加方便地管理数据。Set 可以用来去除数组中的重复项,而 Map 则是一种键值对的数据结构。在实际开发中,我们可以根据实际需要选择使用哪种数据结构。

示例代码:

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

-- ---
----- --- - --- -----
  -------- ------
  ------- ---
---
----------------------------- -- --
展开代码

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

纠错
反馈

纠错反馈