JavaScript set() 方法
最后修改于 2025 年 4 月 4 日
在本文中,我们将展示如何使用 JavaScript 中的 set 方法来使用 Sets。
JavaScript Sets
Set 是一组唯一值的集合,其中每个值只能出现一次。 set 方法用于向 Set 对象添加新元素。 Sets 保持插入顺序,并且可以存储任何类型的值。
与数组不同,Sets 在添加元素时会自动删除重复值。 这使得它们特别适用于存储需要唯一性的集合。 Sets 提供了用于检查元素存在的有效方法。
实际上,set 方法是 JavaScript 中 Map 对象的一部分。 对于 Sets,我们使用 add 方法插入新元素。 本教程涵盖了这两个概念,以澄清这个常见的混淆点。
基本 Set 示例
以下示例演示了 JavaScript 中 Set 的基本用法。
const mySet = new Set();
// Adding elements to the Set
mySet.add(1);
mySet.add(5);
mySet.add('text');
console.log(mySet);
我们创建一个新的 Set 并向其中添加三种不同类型的元素。 Set 自动维护唯一性并保留元素的插入顺序。
$ node main.js
Set(3) { 1, 5, 'text' }
包含重复值的 Set
Sets 通过仅保留一个实例来自动处理重复值。
const numbers = new Set(); numbers.add(1); numbers.add(2); numbers.add(1); // Duplicate value numbers.add(3); console.log(numbers); console.log(numbers.size); // Number of unique elements
我们尝试将重复值添加到 Set。 Set 自动过滤这些重复值,仅保留唯一值。 size 属性显示唯一元素的数量。
$ node main.js
Set(3) { 1, 2, 3 }
3
包含对象的 Set
Sets 可以存储对象引用,将不同的对象实例视为唯一。
const objSet = new Set();
const obj1 = {name: 'John'};
const obj2 = {name: 'John'};
objSet.add(obj1);
objSet.add(obj2);
objSet.add(obj1); // Same object reference
console.log(objSet);
我们将对象引用添加到 Set。 即使 obj1 和 obj2 具有相同的属性,它们在内存中也是不同的对象。 多次添加相同的对象引用只会存储一次。
$ node main.js
Set(2) { { name: 'John' }, { name: 'John' } }
将数组转换为 Set
可以从数组创建 Sets 以自动删除重复项。
const fruits = ['apple', 'banana', 'apple', 'orange', 'banana']; const uniqueFruits = new Set(fruits); console.log(uniqueFruits); console.log([...uniqueFruits]); // Convert back to array
我们将一个包含重复值的数组转换为 Set。 Set 会自动删除重复项。 然后,我们使用扩展运算符将 Set 转换回数组。
$ node main.js
Set(3) { 'apple', 'banana', 'orange' }
[ 'apple', 'banana', 'orange' ]
Map set() 方法示例
实际的 set 方法属于 Map 对象,用于添加键值对。
const userMap = new Map();
// Using set() to add key-value pairs
userMap.set('name', 'Alice');
userMap.set('age', 30);
userMap.set('occupation', 'Developer');
console.log(userMap);
console.log(userMap.get('name')); // Retrieve value
我们创建一个 Map 并使用 set 方法添加键值对。 get 方法通过它们的键检索值。 Maps 像 Sets 一样保持插入顺序,但存储键控数据。
$ node main.js
Map(3) {
'name' => 'Alice',
'age' => 30,
'occupation' => 'Developer'
}
Alice
来源
在本文中,我们演示了如何在 JavaScript 中使用 Sets 和相关的 Map.set() 方法。
作者
列出 所有 JS 数组函数。