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代码
Dec 26 Javascript
jsTree 基于JQuery的排序节点 Bug
Jul 26 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
利用jquery操作Radio方法小结
Oct 20 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
Apr 06 Javascript
fullpage.js全屏滚动插件使用实例
Sep 06 Javascript
Json按某个键的值进行排序
Dec 22 Javascript
微信小程序实现简单跑马灯效果
May 26 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
May 10 Javascript
node.js使用stream模块实现自定义流示例
Feb 13 Javascript
vue中的v-model原理,与组件自定义v-model详解
Aug 04 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
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python获取代码运行时间的实例代码
2018/06/11 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
Django model select的多种用法详解
2019/07/16 Python
python实现计算器功能
2019/10/31 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
学前教育专业毕业生自荐信
2013/10/03 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
奠基仪式策划方案
2014/05/15 职场文书
销售口号大全
2014/06/11 职场文书
校园安全学习心得体会
2016/01/18 职场文书
素质教育培训心得体会
2016/01/19 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
python爬虫之爬取笔趣阁小说
2021/04/22 Python
教你怎么用python selenium实现自动化测试
2021/05/27 Python
Python中异常处理用法
2021/11/27 Python
Redis唯一ID生成器的实现
2022/07/07 Redis