2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 数组取交集 并集与补集

数组取交集 并集与补集

时间:2021-09-28 01:52:13

相关推荐

数组取交集 并集与补集

交集

集合论中,设A,B是两个集合,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集(intersection),记作A∩B。

并集

给定两个集合A,B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集,记作A∪B,读作A并B。

补集

一般指绝对补集,即一般地,设S是一个集合,A是S的一个子集,由S中所有不属于A的元素组成的集合,叫做子集A在S中的绝对补集。在集合论和数学的其他分支中,存在补集的两种定义:相对补集和绝对补集。

这样一个需求,原数组arr1,组件返回数组arr2,最后需要目标数组targetArr

目标数组targetArr中包含arr1与arr2相同的部分,并且删除arr1不在arr2中的元素

分析:

创建一个新的数组,取arr1与arr2的交集再创建一个数组,取arr2在arr1中的补集合并两个创建的数据,得到targetArr

let arr1 = [{id: 1, name: '123' }]let arr2 = [{id: 1, name: '123' },{id: 2, name: '222' }]const arr1Ids = arr1.map(d => d.id)const arr2Ids = arr2.map(d => d.id)const arr3 = arr2.map(t => {if (!arr1.includes(t.id)) {return t}})// arr3即为两个数组的差集const arr4 = arr1.map(t => {if (arr2Ids.includes(t.id)) {return t}})// arr4为arr2在arr1中的补集this.form.dtoList = [...arr3.filter(a => a), ...arr4.filter(a => a)]

这样一个例子,是项目中常用到的一个算法,也许会有更简单的,目前这是我自己的想法。

guozhi-web\src\pages\slcs\viewService\adminActivity\SlcsCreate.vue — 217

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。