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 相关文章推荐
读JavaScript DOM编程艺术笔记
Nov 15 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
Jun 20 Javascript
javascript教程之不完整的继承(js原型链)
Jan 13 Javascript
javascript跨域的4种方法和原理详解
Apr 08 Javascript
js实现鼠标经过时图片滚动停止的方法
Feb 16 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
May 25 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
python爬取安居客二手房网站数据(实例讲解)
Oct 19 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 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分页函数
2006/07/08 PHP
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
在Python下尝试多线程编程
2015/04/28 Python
python类继承用法实例分析
2015/05/27 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
波兰补充商店:Muscle Power
2018/10/29 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
《最后的姿势》教学反思
2014/02/27 职场文书
产品推广策划方案
2014/05/10 职场文书
法律专业求职信
2014/05/24 职场文书
爱心捐书倡议书
2015/04/27 职场文书
CAD实训总结范文
2015/08/03 职场文书
500字作文之难忘的同学
2019/12/20 职场文书