JavaScript - Set() 构造函数



在 JavaScript 中,Set() 构造函数用于创建新的 Set 对象,该对象是唯一值的集合。JavaScript 中的 Set 类似于数组,但具有一些不同的特征:

  • 唯一值 - Set 只能包含唯一值。如果我们尝试添加 Set 中已经存在的值,它将被忽略。
  • 迭代顺序 - 与数组不同,Set 不会根据插入来维护元素的顺序。但是,可以通过迭代来获得元素的顺序。
  • 迭代方法 - 集合提供了迭代其元素的方法,例如 forEach()、for...of 循环,以及 values()、keys() 和 entries() 方法。
  • 类型灵活性 − Set 可以包含任何数据类型的值,包括基元类型、对象,甚至 undefined 或 NaN 值。

语法

以下是 JavaScript Set() constructor的语法 -

new Set(iterable)

参数

此方法接受可选参数。下面描述相同 -

  • iterable (可选) -一个可迭代对象(例如数组),其元素将被添加到集合中。每个元素都必须是唯一的。

如果我们没有指定这个参数,或者它的值为 null,那么新的 Set 将为空。

返回值

Set() 构造函数返回一个新的 Set 对象。

示例 1

在下面的示例中,我们将使用 Set() 构造函数创建一个 Set 对象。我们将一个具有重复值的数组传递给 Set() 构造函数。但是,Set 对象会自动消除重复项,因此 “set” 仅包含唯一值。


<html>
<body>
	 	<script>
	 	 	 const set = new Set([1, 2, 3, 2, 1]);
	 	 	 document.write(set); // Output: Set {1, 2, 3}
	 	</script>
</body>
</html>

正如我们在输出中看到的那样,它消除了所有重复的值,只返回不同的值。

示例 2

在此示例中,我们没有提供任何可迭代对象作为参数。因此,它返回一个空集对象作为结果 -


<html>
<body>
	 	<script>
	 	 	 const set = new Set();
	 	 	 document.write(set); // Output: Set {}
	 	</script>
</body>
</html>

正如我们在输出中看到的那样,它返回了一个空集对象。

示例 3

在这里,我们提供 “null” 作为参数。因此,它返回一个空集对象作为结果 -

<html>
<body>
<script>
const set = new Set(null);
document.write(set); // Output: Set {}
</script>
</body>
</html>

正如我们在输出中看到的那样,它返回了一个空集对象。