JavaScript - Set() 构造函数
在 JavaScript 中,Set() 构造函数用于创建一个新的 Set 对象,该对象是一个包含唯一值的集合。JavaScript 中的 Set 与数组类似,但具有一些不同的特性:
- 唯一值 − Set 只能包含唯一值。如果我们尝试添加 Set 中已存在的值,它将被忽略。
- 迭代顺序 − 与数组不同,Set 不会根据插入操作维护元素的顺序。但是,元素的顺序可以通过迭代获取。
- 迭代方法 − Set 提供了迭代其元素的方法,例如 forEach()、for...of 循环以及 values()、keys() 和 entrys() 方法。
- 类型灵活性 − Set 可以包含任何数据类型的值,包括原始类型、对象,甚至未定义或 NaN 值。
语法
以下是 JavaScript Set() 构造函数的语法 −
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>
正如我们在输出中看到的,它返回了一个空集对象。

