当前位置:首页 > 经验笔记 > javascript > 正文内容

js数组取交集、并集、差集、补集

han32688个月前 (01-18)javascript1029

一、简单数组

let arrA = [1,2,3,4]
let arrB = [4,5,6,7]
// 取交集
let res1  = arrA.filter(item => arrB.includes(item))
 
// 取并集
// 方法一
let res2  = Array.from(new Set([...arrA,...arrB]))
// 方法二
res2  = arrA.concat(arrB.filter(item => arrA.indexOf(item) === -1))
 
// 取差集 arrA相对于arrB所没有的
// 方法一
let res3  = arrA.filter(item => arrB.indexOf(item) === -1)
// 方法二 arrB相对于arrA所没有的
let res4 = arrB.filter(item => !new Set(arrA).has(item))
 
// 取补集 两个数组各自没有的集合
let res5 = [...res3,...res4]
 
console.log(arrA,arrB)
console.log("取交集",res1)
console.log("取并集",res2)
console.log("取差集, arrA相对于arrB所没有的",res3)
console.log("取差集, arrB相对于arrA所没有的",res4)
console.log("取补集",res5)

image.png


一、数组对象

let arrObjA = [{code:1,name:'A'},{code:2,name:'B'},{code:3,name:'C'}]
let arrObjB= [{code:3,name:'C'},{code:4,name:'D'},{code:5,name:'E'}]
 
 
// 取交集:取公共的
let res1  = arrObjA.filter(itemA => arrObjB.findIndex(itemB => itemA.code === itemB.code) > -1)
 
// 取并集:两个数组合并并去重
let res2  = arrObjA.concat(arrObjB.filter(itemB => arrObjA.findIndex(itemA => itemA.code == itemB.code) == -1))
 
 
// 取差集  arrA相对于arrB所没有的
let res4 = arrObjA.filter(itemA => !arrObjB.find(itemB => itemA.code == itemB.code))
// 取差集  arrB相对于arrA所没有的
let res5 = arrObjB.filter(itemB => !arrObjA.find(itemA => itemA.code == itemB.code))
 
// 取补集 两个数组各自没有的集合
let res6 = [...res4,...res5]
 
 
 
console.log(arrObjA,arrObjB)
console.log("取交集",res1)
console.log("取并集",res2)
console.log("取差集, arrB相对于arrA所没有的",res5)
console.log("取补集",res6)

image.png

扫描二维码推送至手机访问。

版权声明:本文由瀚文博客发布,如需转载请注明出处。

本文链接:http://hanwenblog.com/post/96.html

分享给朋友:

相关文章

JS/VUE按钮点击上传文件

直接上代码    importFile() {       const fil...

echarts 第三方实例

一.前言。众所周知,在现今的开发大环境下,数据可视化(大屏化)项目在前端开发中的比重越来越大。而其中使用率最高的插件无疑就是 Apache Echarts。(ps: 以下简称为echarts)。本文就...

js把base64的数据转换成图片并上传

直接上代码,要点就是把base64转成Blob,添加到FormData传递给后台程序,跟选择图片文件上传时一样的了。//base64图片数据 var dataurl = ...

elementUI—el-form表单,校验二层对象的值

表单数据:formData:{     name:'',     role:{  &nb...

ECharts绘制立体柱状图(圆柱体)详细示例

ECharts绘制立体柱状图(圆柱体)详细示例

echarts实现平面的柱状图很顺利,但是用户为了美观立体感,用到圆柱体图,下面这篇文章主要给大家介绍了关于ECharts绘制立体柱状图(圆柱体)的相关资料,需要的朋友可以参考下绘制这个立体的圆柱体柱...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。