JavaScript的Set数据结构是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,JavaScript的Set数据结构是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 什么是 SetSet 可以简单的
千家信息网最后更新 2026年11月01日JavaScript的Set数据结构是什么
JavaScript的Set数据结构是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
1. 什么是 Set
Set 可以简单的看作是数学上的集合。
它是一系列无序,没有重复数值的数据集合。
2. Set 构造函数
对于 Set 的构造函数的参数,可以传递以下几种形式。
2.1) 数组
const s = new Set([1, 2, 1]);console.log(s);

这里传递了一个数组[1, 2, 1]作为参数,由于 Set 是无重复数值的集合,所以第三个 1 自动删除了。
2.2) 字符串
const s = new Set("Hello World!");console.log(s);
2.3) arguments
function fun() { const s = new Set(arguments); console.log(s);}fun(1, 2, 3);2.4) NodeList
set 1
2
3
这里将三个p标签的引用放进了Set s中;
当我们要用的时候,就可以遍历这个 Set,然后分别将p标签的引用取出来,然后就可以对p标签进行修改了。
2.5) Set
const s1 = new Set([1, 2, 3]);const s2 = new Set(s1);console.log(s2);
这里相当于把s1复制过去,给了s2,不过它们不是同一个Set
console.log(s1 === s2);
3. Set 的实例属性和方法
Set 的属性,有一个属性size,用来存储它的成员个数
const s = new Set([1, 2, 3]);console.log(s.size);
Set的方法
add
给 Set 中添加成员
const s = new Set([1, 2, 3]);// 它的参数只能传一个s.add(5);console.log(s);// 可以连缀 adds.add(7).add(9);console.log(s);
delete
用来删除 Set 中的成员
const s = new Set([1, 2, 3]);s.delete(2);// 如果要删除的东西在 Set 中找不到,将什么也不会发生,也不会报错s.delete(5);console.log(s);
has
用来判断 Set 是否含有某个成员
const s = new Set([1, 2, 3]);console.log(s.has(1));console.log(s.has(5));
clear
将会删除 Set 的所有成员
const s = new Set([1, 2, 3]);s.clear();console.log(s);
4. Set 的成员访问
它的成员访问要通过 forEach 方法实现,遍历 Set,它的遍历是按成员的添加顺序来进行遍历的。
它有两个参数,第一个参数为回调函数,第二个参数设定回调函数中this指向什么,即
s.forEach(回调函数, 回调函数的指向)
我们先来看第一个参数:
对于第一个参数回调函数,它有三个参数:
s.forEach(function(value, key, set){ value 就是 Set 的成员 在 Set 中,value 和 key 是相等的 set 就是前面Set的本身,即这里 set === s});通过一个例子理解一下:
const s = new Set([1, 2, 3]);s.forEach(function(value, key, set) { console.log(value, key, value === key); console.log(set, set === s);});再来看第二个参数:
const s = new Set([1, 2, 3]);s.forEach(function(value, key, set) { console.log(this);}, document);5. Set 的注意事项
Set 对重复值的判断基本遵循严格相等===的判断
不过对于NaN,在 Set 中,NaN 等于 NaN
6. Set 的使用场景
数组去重
let arr = [1, 2, 1];const s = new Set(arr);arr = [...s];// 也可以合成一句// arr = [...new Set(arr)];console.log(arr);
字符串去重
let str = "11231131242";const s = new Set(str);str = [...s].join("");// 也可以写成一句// str = [...new Set(str)].join("");console.log(str);存放 DOM 元素
set 1
2
3
看完上述内容,你们掌握JavaScript的Set数据结构是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
参数
成员
函数
方法
数据
三个
属性
数组
标签
数据结构
结构
内容
字符
字符串
就是
指向
数值
更多
问题
束手无策
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
互联网科技公司经营范围
中关村互联网 科技集团
互联网科技财经
互联网巨头反垄断金融科技
互联网科技的发展
丰台科技园 互联网公司
恒生科技互联网指数分析
深圳互联网科技怎么样
博兴的互联网电子科技公司
阿里巴巴算科技企业还是互联网
贵州叶脉互联网科技有限公司所属行业
成都互联网科技公司工作好不好
健康食品互联网创新科技园项目
群盈汇互联网科技有限公司
中科明德北京互联网科技
工业互联网山东科技大学
易租星互联网科技有限公司
科技和互联网行业的特点
优雇互联网科技有限公司
互联网科技未来
鑫亿盛互联网科技
卫星互联网科技股票
速维有品互联网信息科技(苏州)有限公司
富国互联网科技002692
图游互联网科技
35岁以上互联网科技行业
广州梦谷互联网科技有限公司领导
吉林省码上互联网科技电话
科技互联网行业投资研究