es6 set是什么意思

set的意思为“集合”,是ES6提供的新数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值。Set对象允许用户存储任何类型的唯一值,无论是原始值或者是对象引用。

es6 set是什么意思

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

Set是什么?

Set(集合) 是 ES6 提供的新的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值。

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

Set本身是一个构造函数,用来生成Set数据结构。

Set 中的特殊值:

Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等。有几个特殊值需要特殊对待:

+0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;

undefined 与 undefined 是恒等的,所以不重复;

NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。

Set 使用情形

1、用于数组去重

let arr = [3, 5, 2, 2, 5, 5];let setArr = new Set(arr)     // 返回set数据结构  Set(3) {3, 5, 2}//方法一   es6的...解构let unique1 =  [...setArr ];      //去重转数组后  [3,5,2]//方法二  Array.from()解析类数组为数组let unique2 = Array.from(setArr )   //去重转数组后  [3,5,2]

登录后复制

2、用于字符串去重

let str = "352255";let unique = [...new Set(str)].join("");     // 352

登录后复制

3、实现交集、并集、差集

let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);// 并集let union = new Set([...a, ...b]);// Set {1, 2, 3, 4}// 交集let intersect = new Set([...a].filter(x => b.has(x)));// set {2, 3}// (a 相对于 b 的)差集let difference = new Set([...a].filter(x => !b.has(x)));// Set {1}

登录后复制

【相关推荐:javascript视频教程、web前端】

以上就是es6 set是什么意思的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2936616.html

(0)
上一篇 2025年3月11日 21:03:19
下一篇 2025年2月18日 12:58:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • ES6通过什么定义类

    在ES6中,class(类)作为对象的模板被引入,可以通过“class”关键字来定义类。class的本质是function,它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。 本教程操作环境:windows7系统、EC…

    2025年3月11日
    200
  • es6中map和foreach有什么区别

    区别:1、forEach()方法不会返回执行结果,返回值为“undefined”,而map()方法会返回运算结果,会返回一个数组;2、forEach()方法会修改原来的数组,而map()方法不会修改原来的数组。 本教程操作环境:window…

    2025年3月11日 编程技术
    200
  • es6怎么比较2个数组的值是否相等

    es6中可用every()和some()来进行比较,语法“s1.length===s2.length&&s1.every(a=>s2.some(b=>a===b))&&s2.every(_b=&g…

    2025年3月11日
    200
  • es6怎么判断数组是否为空

    es6判断数组是否为空的方法:1、使用“arr.length == 0”语句,判断数组的长度是否为0,如果为0则为空;2、使用“JSON.stringify(arr) === ‘[]’”语句,如果返回值为false则…

    2025年3月11日
    200
  • JavaScript怎么实现8进制转10进制

    在JavaScript中,可以利用parseInt()函数实现8进制数转10进制数,该函数用于解析字符串,返回的结果是解析后的整数,当参数设置为8时,就可以将8进制转化为10进制,语法为“parseInt(string,8)”。 本教程操作…

    2025年3月11日
    200
  • javascript引擎有什么用

    JavaScript引擎用于将javascript代码转换为快速优化的可供浏览器解释的代码,引擎就是一种软件的转换器,将代码输入后产出符合机器识别和操作的命令。 本教程操作环境:windows10系统、javascript1.8.5版、De…

    2025年3月11日 编程技术
    200
  • javascript中什么是预编译

    在JavaScript中,预编译就是代码执行前进行的一项操作,会把变量声明提前,函数声明也提前,把这些按照一定的规则,放在创建的对象里面去的一个过程。 本教程操作环境:windows10系统、javascript1.8.5版、Dell G3…

    2025年3月11日
    200
  • JavaScript工厂函数是什么

    在JavaScript中,工厂函数是用于创建对象的一个函数。这些内建函数都是类对象,调用时实际上是创建了一个类实例,也就是先利用类创建一个对象,然后返回这个对象,创建的函数都拥有相同的属性。 本教程操作环境:windows10系统、java…

    2025年3月11日
    200
  • javascript深拷贝和浅拷贝的区别是什么

    在JavaScript中,浅拷贝只是复制了原数据的内存地址,相当于两个数据指针指向了相同的地址,任意一个数据元素发生改变,会影响另一个;而深拷贝的两个数据指向了不同的地址,任意一个元素发生改变,不会影响另一个。 本教程操作环境:window…

    2025年3月11日
    200
  • javascript与DOM有什么区别

    JavaScript与DOM的区别:1、DOM是文档对象模型,是一种模型结构;而JavaScript是一种客户端脚本语言;2、JavaScript主要利用DOM去控制html元素,从而操作页面,而DOM用于在各种语言中动态修改文档的模型。 …

    2025年3月11日
    200

发表回复

登录后才能评论