首页 > web前端 > js教程 > 正文

javascript Set是什么_怎样用它存储唯一值的集合?

夜晨
发布: 2025-12-18 22:04:03
原创
861人浏览过
JavaScript Set 是用于存储唯一值的内置对象,自动去重、支持高效存在性判断与集合运算,不按索引排序,可通过 add/has/delete/clear 等方法操作,支持 for...of 和 forEach 遍历及转数组等转换。

javascript set是什么_怎样用它存储唯一值的集合?

JavaScript Set 是一个内置对象,用来存储唯一值的集合,无论值的类型是原始类型还是对象,重复添加的值都会被自动忽略。 它不按索引排序,也不支持通过下标访问元素,但能高效地判断某个值是否存在、去重、求交集或差集等。

创建和初始化 Set

new Set() 创建空集合,也可以传入一个可迭代对象(如数组)来初始化:

  • const set1 = new Set(); —— 创建空 Set
  • const set2 = new Set([1, 2, 2, 3, 3]); —— 自动去重,结果为 {1, 2, 3}
  • const set3 = new Set("hello"); —— 字符串会被拆成单字符,结果为 {"h", "e", "l", "o"}(注意:只有一个 "l")

常用操作方法

Set 提供了清晰的方法管理数据:

  • add(value):添加一个值,返回 Set 本身(可链式调用)
  • has(value):返回布尔值,判断是否包含某值(比数组 includes 更快,尤其大数据量)
  • delete(value):删除指定值,返回是否删除成功
  • clear():清空所有元素
  • size:获取当前元素个数(不是方法,是属性)

例如:

const colors = new Set();<br>
colors.add("red").add("blue").add("red"); // 只存两个值<br>
console.log(colors.size); // 2<br>
console.log(colors.has("green")); // false
登录后复制

遍历和转换

Set 支持多种遍历方式,也容易转成其他数据结构:

Playground AI
Playground AI

AI图片生成和修图

Playground AI 108
查看详情 Playground AI

立即学习Java免费学习笔记(深入)”;

  • for...of 循环:for (const color of colors) { console.log(color); }
  • forEachcolors.forEach(c => console.log(c));
  • 转为数组:[...colors]Array.from(colors)
  • 转为字符串(需手动处理):Array.from(colors).join(", ")

配合数组去重和集合运算

Set 最常见的用途之一就是快速去重:

  • 数组去重:[...new Set([1, 2, 2, 3])] → [1, 2, 3]
  • 求并集:new Set([...setA, ...setB])
  • 求交集:new Set([...setA].filter(x => setB.has(x)))
  • 求差集(A 减 B):new Set([...setA].filter(x => !setB.has(x)))

注意:Set 的相等判断使用 SameValueZero 算法,所以 NaN === NaN 为 true,0-0 被视为相同。

以上就是javascript Set是什么_怎样用它存储唯一值的集合?的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号