ES6 使用数据类型Set求交集、并集、差集
前言
ES6新增了数据类型Set,它是一种类似数组的数据结构。但它和数组的不同之处在于它的成员都是唯一的,也就是说可以用来去除数组重复成员。 Set本身是一个构造函数用来生成Set数据结构。
const s=new Set(); 使用add()添加成员。也可以在构造函数中传入数组作为参数 const s=new Set([1,2,3,4]);
属性和实例方法
Set.prototype.constructor 构造函数,默认就是Set函数
Set.prototype.size 返回Set实例成员的数量
方法主要分为操作方法和遍历方法
操作方法:add()、has()、delete()、clear()
遍历方法:keys()、values()、entries()、foreach()
常用的foreach(),a.forEach((value,key)=>{console.log('key:'+key+',value:'+value)});
计算交集、并集、差集
交集主要使用Set构造函数、并集和差集主要使用Sety
let a=new Set([1,2,3]);
let b=new Set([2,3,4]); //并集
let union=new Set([...a,...b]);
console.log(union); //交集
let intersect=new Set([...a].filter(x=>b.has(x)));
console.log(intersect); //差集
let diff=new Set([...a].filter(x=>!b.has(x)));
总结
新年伊始,盘点去年没完成的任务,调整2018的目标和任务,合理规划时间和目标。又一年北票开工了,加油!
ES6 使用数据类型Set求交集、并集、差集的更多相关文章
- SQL求 交集 并集 差集
故事是这样的….. 故事情节: 表 tb_test 有两列, colA , colB; 求 colA , colB 的并交差集… -- 计算并集 SELECT DISTINCT colB FROM t ...
- stl set求交集 并集 差集
#include <iostream>#include <set> using namespace std; typedef struct tagStudentInfo{ i ...
- 如何求ArrayList集合的交集 并集 差集 去重复并集
需要用到List接口中定义的几个方法: addAll(Collection<? extends E> c) :按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾 ...
- Python 求两个文本文件以行为单位的交集 并集 差集
Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...
- (java/javascript) list 交集 并集 差集 去重复并集
java list 交集 并集 差集 去重复并集 package com; import java.util.ArrayList; import java.util.Iterator; import ...
- spark之交集并集差集拉链
spark之交集并集差集拉链 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster(&qu ...
- js求对象数组的交集/并集/差集/去重
1.求交集 var arr1 = [{name:'name1',id:1},{name:'name2',id:2},{name:'name3',id:3}]; var arr1Id = [1,2,3] ...
- Oracle集合运算符 交集 并集 差集
集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集 一.union求并集,公共部分只有包含一次 例:求emp表ename中含’A‘或含有‘M’ SQL&g ...
- oracle交集,并集,差集
引自:http://www.2cto.com/database/201308/238777.html [sql] create table test1 ( name ), NN ) ); insert ...
随机推荐
- Spring-AspectJ 配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- 安装virtualbox出现2503、2502的错误提示解决方法
安装virtualbox右键选择以管理员的身份打开即可
- 我人生做过的第一个信息化项目--TIPTOP 5.0 ERP项目
我人生做过的第一个信息化项目--TIPTOP 5.0 ERP项目 2008年8月毕业不久,我参与了我人生的第一个信息化项目:TIPTOP 5.0 ERP项目.
- springcloud config 提取公共参数
每个微服务都有自己的配置文件application-local.yml和bootstrap.yml, 这个两个配置文件的读取顺序是先读取bootstrap.yml文件,在读取application-l ...
- QEMU KVM libvirt 手册(3) - Storage Media
访问Hard Drive 使用-hda –hdb qemu-system-x86_64 -enable-kvm -name ubuntutest -m 2048 -hda ubuntutest.im ...
- Virtio: An I/O virtualization framework for Linux
The Linux kernel supports a variety of virtualization schemes, and that's likely to grow as virtuali ...
- python模块的导入的两种方式区别详解
Python 有两种导入模块的方法.两种都有用,你应该知道什么时候使用哪一种方法.一种方法,import module,另一种是from module import,下面是 from module i ...
- 知乎十万级容器规模的Java分布式镜像仓库实践
作者:知乎令孤无忌 前言 知乎在 2016 年已经完成了全量业务的容器化,并在自研容器平台上以原生镜像的方式部署和运行,并在后续陆续实施了 CI.Cron.Kafka.HAProxy.HBase.Tw ...
- Android WebView 打印 Console Log
通常状况下,添加如下代码即可: mWebView.setWebViewClient(new WebChromeClient { /*android 低版本 Desperate*/ @ ...
- Android 9.0/P 开发问题及解决方案汇总
一.使用 org.apache.http.legacy 库在Android 9.0上运行出现崩溃 日志内容: java.lang.NoClassDefFoundError: Failed resolu ...