ES7 常用数据类型之 Set 详解

Set 是 ES6 中新增的一种数据类型,它类似于数组,但是成员的值都是唯一的,没有重复的值。ES7 对 Set 做了一些增强,本文将详细介绍 Set 的常用方法和用法,以及相比于数组的优势。

Set 的基本用法

创建 Set

通过 new Set() 可以创建一个空的 Set:

也可以传入一个数组(或类数组对象)来初始化 Set:

注意,如果数组中有重复的元素,Set 会自动去重:

Set 的常用方法

Set 的常用方法主要有以下几个:

  • add(value):向 Set 中添加一个值,返回 Set 本身。
  • delete(value):从 Set 中删除一个值,返回一个布尔值表示是否删除成功。
  • has(value):判断 Set 是否包含某个值,返回一个布尔值。
  • clear():清空 Set 中的所有值,没有返回值。
  • forEach(callbackFn, thisArg?):遍历 Set 中的每个值,并使用回调函数处理,可以有第二个参数指定回调函数中的 this 对象。

Set 的优势

相比于数组,Set 的优势有以下几个:

  1. 去重:Set 自动去重,使得代码更简洁高效。
  2. 高效的查找:Set 中可以使用 has 方法来判断是否包含某个值,时间复杂度为 O(1),而数组的 indexOf 方法时间复杂度最差为 O(n)。
  3. 更加语义化的集合操作:Set 支持交集、并集、差集等常见的集合操作。

Set 与数组的相互转换

将 Set 转换为数组

可以使用 Array.from 或展开运算符(...)将 Set 转换为数组:

将数组转换为 Set

可以直接使用数组初始化 Set:

Set 实际应用

数组去重

Set 可以轻松地实现数组去重:

判断两个数组是否有交集

Set 可以轻松地判断两个数组是否有交集:

数组的并集和差集

使用 Set 可以更加语义化地实现数组的并集和差集:

总结

本文介绍了 ES7 中新增的数据类型 Set,包括基本用法和常用方法,并展示了 Set 相较于数组的优势以及实际应用。Set 在实际开发中会更加简洁高效,更具语义化。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654f32c47d4982a6eb82f34b


纠错
反馈