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 相关文章推荐
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
js报$ is not a function 的问题的解决方法
Jan 20 Javascript
jQuery中parentsUntil()方法用法实例
Jan 07 Javascript
Javascript中的Prototype到底是什么
Feb 16 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 Javascript
详解微信小程序设置底部导航栏目方法
Jun 29 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
Apr 28 Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 Javascript
vue使用video.js进行视频播放功能
Jul 18 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 Javascript
js实现跳一跳小游戏
Jul 31 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
PHP中的session安全吗?
2016/01/22 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
Windows下python2.7.8安装图文教程
2016/05/26 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
Pyqt5自适应布局实例
2019/12/13 Python
pytorch中图像的数据格式实例
2020/02/11 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
8种常用的Python工具
2020/08/05 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
2016年社区服务活动总结
2016/04/06 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers