new Set()的基础用法(ES6)
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)相关推荐
- ES6 — Promise基础用法详解(resolve、reject、then、catch,all,)
ES6 - Promise基础用法详解 Promise 是一个构造函数,它自身拥有all.reject.resolve这几个眼熟的方法, 原型上有then.catch等同样熟悉的方法. 所以,在开始一 ...
- Promise基础用法
什么是Promise? Promise是用来处理异步的; Promise就是承诺,对未来的承诺; 所谓的Promise(承诺),里面保存着未来才会结束的事件的结果; Promise是异步编程的一种解决 ...
- Promise详解(一) ----基础用法
什么是Promise Promise是由社区最早提出并实现的,后加入到es6规范中.为更好处理javascript异步问题,用于解决其多次异步回掉嵌套问题.下面先尝试下promise的基础用法吧. 创 ...
- java写mapstate算子,vuex state及mapState的基础用法详解
vuex state及mapState的基础用法详解 2019-01-07 编程之家收集整理的这篇文章主要介绍了vuex state及mapState的基础用法详解,编程之家小编觉得挺不错的,现在分享 ...
- Pandas基础用法合集(中文官档)
本节介绍 pandas 数据结构的基础用法.下列代码创建示例数据对象: In [1]: index = pd.date_range('1/1/2000', periods=8) In [2]: s = ...
- pandas object转float_数据分析篇 | Pandas基础用法6【完结篇】
这是最后一篇,至此Pandas系列终于连载完了,有需要的也可以看看前面6篇,尽请收藏. 数据分析篇 | Pandas 概览 数据分析篇 | Pandas基础用法1数据分析篇 | Pandas基础用法2 ...
- dubbo官方文档中文_Pandas中文官方文档:基础用法5
本文授权转载自Python大咖谈禁止二次转载 大家好,我是老表 阅读文本大概需要 16 分钟 建议从头开始学习,本系列前四篇 Pandas中文官方文档:基础用法1 Pandas中文官方文档:基础用法2 ...
- struct用法_精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
笔者在之前已经写了一系列的关于RestTemplate的文章,如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HT ...
- ORACLE的基础用法
ORACLE的基础用法 转 自:http://blog.163.com/kelly_19831017/blog/static/6196787020083133348873/ sqlplus sys/o ...
最新文章
- MyBatis3: There is no getter for property named 'code' in 'class java.lang.String'
- 华中科技大学c语言作业答案,华中科技大学标准C语言程序设计及应用习题答案...
- DCMTK:使用dcmimage库将DICOM图像转换为PPM或PGM
- IAR FOR ARM 各版本,需要的大家可以收藏了
- 多个输出用java怎么写_请问用java写程序怎么输出这两个图形
- django富文本编辑器
- Apache Karaf配置远程调试
- 首次!华人获世界科学奖,其海洋蓝色能源技术或解决世界能源需求
- 【转载保存】hadoop三个配置文件的参数含义说明core-site.xml、hdfs-site.xml、...
- 微软再现宕机事故 部分用户9天无法使用电邮
- All about the “paper”
- 【ES】学习2-搜索
- DICOM医学图像处理:浅析SWF、MWL、SPS、MPPS
- 深圳连续社保的重要性 - 社保为什么不能中断
- Original error: Error executing adbExec
- 演讲实录丨朱频频 让Bots无处不在
- Nacos服务注册流程(一)
- Cornerstone清除缓存
- 安徽科技学院 信网学院网络文化节 赵涛
- 商业周刊:MySpace兴衰沉浮启示录(转)