文章目录

    • @[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. 多通道_多通道光纤滑环与单通道光纤滑环的设计原理区别
  2. ArrayList使用
  3. 如何成为Java开发工程师?需要掌握哪些技能?
  4. 30件你不知道可以通过Internet来办到的事
  5. 万字干货,eBPF 中文入门指南
  6. 【Python】 _tkinter.TclError: bitmap xzw.ico not defined
  7. java技术管理的简历_基于javaweb个人简历生成及管理系统.doc
  8. 网盘共享文件有病毒吗?
  9. PR软件有哪些辅助功能?Premiere Pro 的辅助功能介绍
  10. 赶紧看看吧 Linksys路由器 出事了
  11. Unity - Timeline 自定义剪辑,轨道,混合轨道,Inspector属性显示(使用Default Playables辅助工具)
  12. Space Shooter
  13. 性能测试分析之-CPU时间分类与饱和度
  14. NEU 1690 (最短路+LCA)
  15. 对#Hello,2015征文#+Android 热敏打印机打印二维码(图片)博客的尝试
  16. 计算机仿真技术生物,基于计算机仿真技术的人体生理特性和病理机制研究
  17. while true java_Java中对while(true)的理解
  18. 【python爬虫专项(28)】链家二手房源数据采集1(分页信息采集)
  19. 夏影 ~あの飞行机云を超えた、その先へ~
  20. 【ArcGIS微课1000例】0055:根据图层创建自定义图例符号案例教程

热门文章

  1. 《计算机科学概论(第12版)》—第0章0.2节计算机器的由来
  2. VS Code Material Icon Theme插件设置自定义文件夹图标关联
  3. iOS应用崩溃日志分析
  4. 计算机科学基础word实验一,【实验2】熟悉WORD界面及其基本操作
  5. python金融衍生品有哪些_什么是金融衍生品,金融衍生品有哪些?
  6. 关于资产分池ABS等金融衍生品内容来袭
  7. 计算机外文文献PDF,computer network 计算机 网络 外文文献.pdf
  8. 土豆网电影在线观看客户端官方版
  9. ubuntu18.0.4 无线网卡无法上网解决!
  10. 一名数据分析师的工作职责和需要掌握的基本知识