js如何使用集合

js如何使用集合
最新回答
晴时不见荷

2026-10-22 17:19:34

在 JavaScript 中,集合(Set)是一种存储唯一值的数据结构,适用于需要去重或快速判断元素是否存在的场景。以下是 Set 的详细使用方法:

1. 创建集合
  • 使用构造函数创建一个空集合:const mySet = new Set();
  • 通过数组初始化直接传入数组创建包含初始值的集合:const mySet = new Set([1, 2, "a", "b"]); // 集合内容:1, 2, "a", "b"
2. 操作集合元素
  • 添加元素使用 add() 方法,重复添加同一值会被自动忽略:mySet.add(3); // 集合内容:1, 2, "a", "b", 3mySet.add(1); // 无效,1 已存在
  • 删除元素使用 delete() 方法,返回布尔值表示是否删除成功:mySet.delete("a"); // 返回 true,集合内容:1, 2, "b", 3
  • 检查元素存在使用 has() 方法快速判断:console.log(mySet.has(2)); // true
  • 清空集合使用 clear() 方法移除所有元素:mySet.clear(); // 集合变为空
3. 获取集合信息
  • 元素数量通过 size 属性获取(注意:不是方法):console.log(mySet.size); // 输出当前元素个数
4. 遍历集合
  • forEach() 方法遍历时回调参数为 (value, key),由于 Set 无键值对,两者值相同:mySet.forEach((value, key) => { console.log(`Value: ${value}, Key: ${key}`); // 输出如 "Value: 1, Key: 1"});
  • for...of 循环直接获取每个元素的值:for (const value of mySet) { console.log(value); // 依次输出 1, 2, "b", 3}
5. 其他实用方法
  • entries()返回 [value, value] 形式的迭代器(兼容 Map 的 API):const iterator = mySet.entries();console.log(iterator.next().value); // [1, 1]
  • keys() 和 values()两者行为相同,均返回值的迭代器:const keys = mySet.keys(); // 或 mySet.values()console.log([...keys]); // 转为数组:[1, 2, "b", 3]
6. 实际应用示例
  • 数组去重const arr = [1, 2, 2, 3];const uniqueArr = [...new Set(arr)]; // [1, 2, 3]
  • 判断元素是否存在const tags = new Set(["js", "html", "css"]);if (tags.has("js")) { console.log("包含 JS 标签");}
注意事项
  • Set 使用严格相等(===)判断唯一性,但 NaN 被视为相同值。
  • 对象作为元素时,比较的是引用地址而非内容。

通过以上方法,可以高效利用 Set 处理唯一值需求,如去重、快速查找等场景。