1、什么是Set()

Set是es6新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。

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

2、增删改查方法

2.1 添加元素add

添加某个值,返回 Set 结构本身,当添加实例中已经存在的元素,set不会进行处理添加

let list=new Set();
list.add(1)
list.add(2).add(3).add(3)   // 2只被添加了一次
2.2 删除元素 delete

删除某个值,返回一个布尔值,表示删除是否成功

let list=new Set([1,20,30,40])
list.delete(30)      //删除值为30的元素,这里的30并非下标
2.3 判断某元素是否存在has

返回一个布尔值,判断该值是否为Set的成员

let list=new Set([1,2,3,4])
list.has(2)//true
2.4 清除所有元素clear

清除所有成员,没有返回值

let list=new Set([1,2,3,4])
list.clear()

3、遍历方法

3.1 遍历 keys()

返回键名的遍历器,相等于返回键值遍历器values()

let list2=new Set(['a','b','c'])
for(let key of list2.keys()){console.log(key)//a,b,c
}
3.2 遍历 values()

返回键值的遍历器

let list=new Set(['a','b','c'])
for(let value of list.values()){
console.log(value)//a,b,c
}
3.3 遍历 entries()

返回键值对的遍历器

let list=new Set(['4','5','hello'])
for (let item of list.entries()) {console.log(item);
}
// ['4','4']   ['5','5']   ['hello','hello']
3.4 遍历 forEach()

使用回调函数遍历每个成员

let list=new Set(['4','5','hello'])
list.forEach((value, key) => console.log(key + ' : ' + value))
// 4:4    5:5   hello:hello

4、使用情形

4.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]
4.2 用于字符串去重
let str = "352255";
let unique = [...new Set(str)].join("");     // 352
4.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}

参考链接 https://blog.csdn.net/qq_40016476/article/details/80999335

new Set()的基础用法(ES6)相关推荐

  1. ES6 — Promise基础用法详解(resolve、reject、then、catch,all,)

    ES6 - Promise基础用法详解 Promise 是一个构造函数,它自身拥有all.reject.resolve这几个眼熟的方法, 原型上有then.catch等同样熟悉的方法. 所以,在开始一 ...

  2. Promise基础用法

    什么是Promise? Promise是用来处理异步的; Promise就是承诺,对未来的承诺; 所谓的Promise(承诺),里面保存着未来才会结束的事件的结果; Promise是异步编程的一种解决 ...

  3. Promise详解(一) ----基础用法

    什么是Promise Promise是由社区最早提出并实现的,后加入到es6规范中.为更好处理javascript异步问题,用于解决其多次异步回掉嵌套问题.下面先尝试下promise的基础用法吧. 创 ...

  4. java写mapstate算子,vuex state及mapState的基础用法详解

    vuex state及mapState的基础用法详解 2019-01-07 编程之家收集整理的这篇文章主要介绍了vuex state及mapState的基础用法详解,编程之家小编觉得挺不错的,现在分享 ...

  5. Pandas基础用法合集(中文官档)

    本节介绍 pandas 数据结构的基础用法.下列代码创建示例数据对象: In [1]: index = pd.date_range('1/1/2000', periods=8) In [2]: s = ...

  6. pandas object转float_数据分析篇 | Pandas基础用法6【完结篇】

    这是最后一篇,至此Pandas系列终于连载完了,有需要的也可以看看前面6篇,尽请收藏. 数据分析篇 | Pandas 概览 数据分析篇 | Pandas基础用法1数据分析篇 | Pandas基础用法2 ...

  7. dubbo官方文档中文_Pandas中文官方文档:基础用法5

    本文授权转载自Python大咖谈禁止二次转载 大家好,我是老表 阅读文本大概需要 16 分钟 建议从头开始学习,本系列前四篇 Pandas中文官方文档:基础用法1 Pandas中文官方文档:基础用法2 ...

  8. struct用法_精讲响应式webclient第1篇-响应式非阻塞IO与基础用法

    笔者在之前已经写了一系列的关于RestTemplate的文章,如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HT ...

  9. ORACLE的基础用法

    ORACLE的基础用法 转 自:http://blog.163.com/kelly_19831017/blog/static/6196787020083133348873/ sqlplus sys/o ...

最新文章

  1. MyBatis3: There is no getter for property named 'code' in 'class java.lang.String'
  2. 华中科技大学c语言作业答案,华中科技大学标准C语言程序设计及应用习题答案...
  3. DCMTK:使用dcmimage库将DICOM图像转换为PPM或PGM
  4. IAR FOR ARM 各版本,需要的大家可以收藏了
  5. 多个输出用java怎么写_请问用java写程序怎么输出这两个图形
  6. django富文本编辑器
  7. Apache Karaf配置远程调试
  8. 首次!华人获世界科学奖,其海洋蓝色能源技术或解决世界能源需求
  9. 【转载保存】hadoop三个配置文件的参数含义说明core-site.xml、hdfs-site.xml、...
  10. 微软再现宕机事故 部分用户9天无法使用电邮
  11. All about the “paper”
  12. 【ES】学习2-搜索
  13. DICOM医学图像处理:浅析SWF、MWL、SPS、MPPS
  14. 深圳连续社保的重要性 - 社保为什么不能中断
  15. Original error: Error executing adbExec
  16. 演讲实录丨朱频频 让Bots无处不在
  17. Nacos服务注册流程(一)
  18. Cornerstone清除缓存
  19. 安徽科技学院 信网学院网络文化节 赵涛
  20. 商业周刊:MySpace兴衰沉浮启示录(转)

热门文章

  1. 手机库存或达数亿,高傲的国产手机无奈低头,纷纷降价超千元促销
  2. lua skynet 出现 decode error 的一种解决方法
  3. IE中JS与C++交互 MFC
  4. UCOSiii--源码阅读
  5. 《网络安全》第1章部分作业解答
  6. 使用 WMI 获得计算机信息
  7. 90后小伙利用支付宝漏洞被抓, 我为什么拍手叫好?
  8. 腾讯官方 QQ for Linux 新版本开始公测
  9. C语言计算贝祖算法,欧几里德算法及贝祖公式
  10. [记录]几个cheatsheet网站