JavaScript Set

2025年4月23日 | 阅读 4 分钟

JavaScript 中的 Set 是什么?

在 JavaScript 中,Set 是一种数据对象,我们用它来保存一组唯一值。借助 Set,我们可以保存任何类型的数据,但 Set 不包含重复的值或项。

如果 Set 中有重复或相同的值,则只会保存第一个实例。换句话说,Set 是一个允许我们存储唯一值的对象,并且任何元素都不能重复。

JavaScript Set 对象用于存储具有唯一值的元素。这些值可以是任何类型,即原始值或对象引用。

语法

参数

iterable - 它表示一个可迭代对象,其元素将被添加到新的 Set 中。

注意事项

  • Set 对象内部使用键的概念。
  • Set 对象不能包含重复值。
  • Set 对象按照插入顺序遍历其元素。

如何在 JavaScript 中创建 Set

在 JavaScript 中,我们可以使用 Set 来创建唯一值。例如,我们可以借助 Set 创建一个 ID。

示例

如果我们要创建 Set,我们需要以 new 关键字和 Set 开始。

我们还可以通过创建一个 Set,用可迭代对象初始化 Set 中的值。我们可以将数组、Set 或 nodelist 等可迭代对象传递给 Set。

示例

让我们举一个例子来理解如何将值传递给 Set。

输出

Set(4) {2, 4, 5, 6}

JavaScript 中 Set 的方法或属性

在 JavaScript 中,Set 中有几种方法或属性,我们可以使用它们来检索、添加和删除、检查 Set 中的所有元素。让我们详细了解所有这些属性和方法,以及如何借助 Set 使用它们。

使用 set.add()

我们使用 set.add() 方法在 Set 对象的末尾添加具有特定值的新元素。简单来说,它用于向 Set 添加新值。

语法

示例

输出

Set(4) { 'BMW', 'Mercedes', 'Audi', 'Porsche' }

使用 set.delete()

我们可以使用 delete 方法从 Set 中删除一个项。通过使用 set.delete(),我们可以从 Set 对象中删除特定元素。

语法

示例

输出

Set(2) { 'BMW', 'Audi' }

使用 has() 方法

我们使用 has() 方法来检查 Set 中是否包含该元素。如果元素存在于 Set 对象中,它将返回 true。

语法

示例

输出

true
true
true 

使用 set.values()

使用 values() 方法,Set.values() 检索 Set 中的值。该方法返回一个可迭代对象,可以通过 for 循环或 for-of 循环进行遍历。

简单来说,它按照相同的插入顺序从 Set 中返回值。

语法

示例

输出

100
321
234
45
76

使用 set.clear()

通过使用 clear 方法,我们可以清除 Set 中的所有元素。简单来说,它会从 Set 中删除所有元素。

语法

示例

输出

Set(5) { 11, 12, 13, 14, 15 }
Set(0) {}

使用 set.entries()

我们可以使用 entries 方法检索 Set 中的所有元素,该方法返回一个可迭代对象,可以通过 for 循环或 for-of 循环进行遍历。

语法

示例

输出

[ 50, 50 ]
[ 40, 40 ]
[ 30, 30 ]

JavaScript 中 Set 的优点

在 JavaScript 中使用 Set 有以下好处:

  • 通过使用 Set,我们可以存储唯一值,以避免当前 Set 中元素的重复。
  • 在 JavaScript 中,Set 中的元素以高效的方式存储。
  • Set 是动态的,因此不会出现 Set 溢出的错误。
  • 它们提供快速高效的操作,用于检查元素是否存在于 Set 中。
  • 我们可以使用不同的数据结构实现 Set,例如 HashSet 和 TreeSet,每种数据结构都有其自身的优点和用例。
  • 它们可以用于各种应用程序,包括算法、数据分析和数据库。

JavaScript Set 方法

让我们看看 JavaScript Set 方法列表及其描述。

方法描述
add()它将指定的值添加到 Set 对象中。
clear()它从 Set 对象中删除所有元素。
delete()它从 Set 对象中删除指定元素。
entries()它返回一个 Set 迭代器对象,其中包含每个元素的 [值, 值] 数组。
forEach()它为每个值执行一次指定的函数。
has()它指示 Set 对象是否包含指定的值元素。
values()它返回一个 Set 迭代器对象,其中包含每个元素的值。

下一个主题JavaScript 事件