文章目录

    • @[TOC](文章目录)
  • 前言
  • 一、Set对象是什么?
  • 二、基础使用
    • 1.创建set对象 new Set()
    • 2.添加数据 add()
    • 3、删除数据 delete()
    • 4、检测是否含有一个数据 has()
    • 5、清空set对象 clear()
    • 6、将set对象转换成数组
  • 三、扩展使用
    • 1、数组去重
    • 2、数组并集

前言

ES6新特性复习记录文档


一、Set对象是什么?

Set是 ES6 新提出的一种对象,是一种数据结构
Set的一个重要特性就是集合中是不允许添加重复元素的
如果是简单数据类型,会使用精确相对运算符号 === 判断是否是全等的
如果是引用的数据类型,则判断内存地址是否一样
特殊的NaN由于其本身在就不等于自己,所以需要特殊对待视为相等的

二、基础使用

1.创建set对象 new Set()

使用 new 方法去声明 Set这个构造函数
set中不会有相同的数据 多用于数据去重

    var arr = [1,2,3,4,4,5]console.log(arr); //(6) [1, 2, 3, 4, 4, 5]//创建var val = new Set(arr)// 使用console.log(new Set(arr)); // Set(5) {1, 2, 3, 4, 5}

2.添加数据 add()

Set 中不会添加相同的数据

    //添加val.add(1)console.log(val); //Set(5) {1, 2, 3, 4, 5}val.add(7)console.log(val); //Set(6) {1, 2, 3, 4, 5, 7}

3、删除数据 delete()

    //删除val.delete(1)console.log(val); // Set(5) {2, 3, 4, 5, 70}

4、检测是否含有一个数据 has()

会返回一个布尔值

    //判断是否含有console.log(val.has(1)); // falseconsole.log(val.has(2)); // true

5、清空set对象 clear()

    //清空val.clear()console.log(val); //Set(0) {size: 0}

6、将set对象转换成数组

使用Array.from

    //转换成数组var newVal = Array.from(val)

使用扩展运算符

    var newVal = [...val]console.log(newVal); //(5) [2, 3, 4, 5, 7]

三、扩展使用

1、数组去重

    var arr1 = [1,2,3,3,4]var arr2 = [1,2,5,5,'k']//拼接数组var oldArr1 = arr1.concat(arr2)console.log(oldArr1); // (10) [1, 2, 3, 3, 4, 1, 2, 5, 5, 'k']//set去重var newVal1 = new Set(oldArr1)console.log(newVal1); // Set(6) {1, 2, 3, 4, 5, …}//转换成数组var newArr1 = [...newVal1]console.log(newArr1); // (6) [1, 2, 3, 4, 5, 'k']

2、数组并集

    var arr3 = [1,2,3,3,4]var arr4 = [1,2,5,5,'k']var oldArr2 = new Set(arr3)var oldArr22 = new Set(arr4)var newVal2 = new Set([...oldArr2,...oldArr22])console.log(newVal2); // Set(6) {1, 2, 3, 4, 5,'k'}

【ES6新特性】set对象相关推荐

  1. ES6新特性_ES6对象添加Symbol类型属性---JavaScript_ECMAScript_ES6-ES11新特性工作笔记016

    然后我们再来看,给对象添加symbol类型的属性, 这个这样做的目的就是: 保证我们添加的方法或属性是唯一的,因为我们知道 我们的symbol这个属性是有唯一性的. 首先我们有个 let game = ...

  2. ES6新特性_ES6对象的简化写法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记008

    然后我们再看一下,对象的简化写法 可以看到我们先声明,一个name,一个change方法 然后以前我们声明const变量,然后需要上面这样写 name:name change:change 现在不用了 ...

  3. ES6新特性_Promise对象的catch方法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记029

    然后我们看promise的catch方法. 之前写代码的时候可以,出错了,会调用p.then的第二个函数, 我们写完去测试一下 看到出错了. 然后我们再去看看,其实出错了,我们除了可以用 p.then ...

  4. es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构

    往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...

  5. javascript ES6 新特性之 扩展运算符 三个点 ...

    对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中. 作用类似于 Object.assign() ...

  6. html5 跳转参数不显示_HTML5、CSS3、ES6新特性总结

    前言:HTML5.CSS3.ES6新特性,可以说是基础前端的面试的必考题了,以下是关于新特性的基本总结. HTML5: 语义化的区块和段落元素:<section>,<article& ...

  7. 尚硅谷es6新特性笔记

    尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...

  8. lsdyna如何设置set中的node_list_如何快速掌握es6+新特性及核心语法?

    国庆刚刚结束,我们开始一波新的学习进程吧. ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.作为前端必备技能,我们来快速开始吧 接 ...

  9. ES6新特性----面试

    ES6新特性 关键字 let关键字 const关键字 解构赋值 变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 用途 模板字符串 箭头函数 ...

  10. ES6新特性16-Class

    ES6新特性16-Class 文章目录 ES6新特性16-Class 一.Class介绍和初体验 二.class静态成员 三.构造函数继承 四.子类对父类方法的重写 五.get和set 一.Class ...

最新文章

  1. 使用代理网络配置maven,显示导入失败的原因
  2. 马明哲新年内部讲话透露新战略:全面开启3.0时代
  3. dev gridcontrol设置过滤器下拉列表
  4. linux基础命令_Linux命令基础大全
  5. C++ 中的三种继承public , protected, private
  6. 51 Nod 1007 正整数分组【类01背包】
  7. 程序员家的大闸蟹:青壳、白底、肉多、爆黄,现在是吃大闸蟹的最佳时期
  8. DM8168 TILER(3)
  9. Python redis的订阅发布机制(publish、pubsub)
  10. 伤感网络验证系统_网络攻防演练中弱密码安全治理的几点建议
  11. js进阶 10-3 jquery中为什么用document.ready方法
  12. 百度网盘也能BT下载ED2K
  13. 创维机顶盒E900刷LinuxNas系统
  14. wpf制作的画图软件
  15. 辽宁大学计算机专科专业,2020辽宁大学计算机考研专业课调整
  16. 判断变量x是奇数还是偶数
  17. 解决训练时显存不断增大问题
  18. 使用 Transformer 序列到序列的钢琴转录
  19. 【Codeforces】1665E MinimizOR 题解
  20. BiocManager安装R包解决下载速度太慢的问题

热门文章

  1. js中this的作用域
  2. win10禁用全角_win10输入法全角半角怎么切换 快捷键使用教程
  3. 利用TreeWalk提高网速及其在vista中的安装方法
  4. 也来聊聊Spring中的IOC和AOP
  5. 如何批量修改抖音视频的分辨率
  6. 七种寻址方式(立即寻址、寄存器寻址)
  7. js压缩文件或文件夹
  8. ( 教程 ) 微信公众号做淘宝优惠券自动查券返利机器人怎么设置?
  9. 亚利桑那州立大学计算机专业,亚利桑那州立大学计算机专业排名
  10. 第七周 项目4 - 队列数组