ES6使用Set数据结构实现数组的交集、并集、差集功能示例


Posted in Javascript onOctober 31, 2017

本文实例讲述了ES6使用Set数据结构实现数组的交集、并集、差集功能。分享给大家供大家参考,具体如下:

Set数据结构是es6中新增的,它类似于数组,但是成员的值唯一,没有重复值。

Set本身是一个数据结构,用来生成Set数据节后

Set数据结构的实例有4种遍历方法:

keys():返回一个键名的遍历器
values():返回一个键值便利器
entries():返回一个键值对便利器
forEach():使用回调函数遍历每个成员

由于Set数据结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys和values方法的行为完全一致。

因此使用Set可以容易的实现交集、并集、差集

看看实现代码:

let a=new Set([1,2,3]);
let b=new Set([4,3,2]);
//交集
let union= [...new Set([...a,...b])];
console.log(union);
//并集
let intersect= [...new Set([...a].filter(x=> b.has(x)))];
console.log(intersect);
//差集
let difference= [...new Set([...a].filter(x=> !b.has(x)))];
console.log(difference);

更多相关内容可查看本站专题:《ECMAScript6(ES6)入门教程》、《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript错误与调试技巧总结》及《javascript面向对象入门教程》

希望本文所述对大家基于ECMAScript的程序设计有所帮助。

Javascript 相关文章推荐
ExtJS下书写动态生成的xml(兼容火狐)
Apr 02 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
javascript 常见功能汇总
Jun 11 Javascript
jQuery给元素添加样式的方法详解
Dec 30 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
Oct 14 Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
Elasticsearch实现复合查询高亮结果功能
Sep 10 Javascript
在react中使用vue的状态管理的方法示例
May 02 Javascript
js+audio实现音乐播放器
Sep 13 Javascript
Vue实战之vue登录验证的实现代码
Oct 31 #Javascript
jQuery ajax读取本地json文件的实例
Oct 31 #jQuery
ES6解构赋值的功能与用途实例分析
Oct 31 #Javascript
js原生日历的实例(推荐)
Oct 31 #Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 #Javascript
详解RequireJs官方使用教程
Oct 31 #Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 #Javascript
You might like
php最简单的删除目录与文件实现方法
2014/11/28 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
潜说js对象和数组
2011/05/25 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
详解Python中的type和object
2018/08/15 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
Python3 读取Word文件方式
2020/02/13 Python
Python3获取cookie常用三种方案
2020/10/05 Python
Linux开机引导的步骤是什么
2015/10/19 面试题
高一学生期末评语
2014/04/25 职场文书
公益广告标语
2014/06/19 职场文书
甜品店创业计划书
2014/09/21 职场文书
收款授权委托书
2014/10/02 职场文书
单位政审意见范文
2015/06/04 职场文书
张丽莉观后感
2015/06/16 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server