千家信息网

JavaScript的Set数据结构是什么

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,JavaScript的Set数据结构是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 什么是 SetSet 可以简单的
千家信息网最后更新 2025年02月02日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安全错误 数据库的锁怎样保障安全 用5e对战平台连接不上服务器 斗罗大陆登录页面没有服务器 无锡网络安全准入控制价格 宁波学软件开发项目 如何把程序导入数据库 潜力的聊天软件开发 串口服务器与单片机通讯程序 高唐县龙世明网络技术有限公司 英语词汇分级软件开发 陕有色数据库 网络安全公益广告动画 公司软件开发甲级涉密资质 黑客软件开发团队官网 嵌入式软件开发的电脑推荐 服务器系统怎么取消待机 应用软件服务器安全规范文案 edge 代理服务器 网络安全适度保护原则 广州千象网络技术公司 济南聚恒网络技术有限公司 用友初始化数据库口令是什么 天津npu人工智能服务器 数据库显示err图 主机服务器解析域名 文件审批oa软件开发公司 如何查看服务器是否安装pip 测试软件开发流产有那些 腾讯云学生服务器教程 随着网络安全法的实施 微信服务器是什么数据库
    0