在 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>
正如我们在输出中看到的那样,它返回了一个空集对象。