首页 > 编程语言 > 详细

前端 数组 对象 交 并 补

时间:2020-06-03 12:21:59      阅读:43      评论:0      收藏:0      [点我收藏+]

数组 交并补

var a=[1,2,3,5,7,8,9]
var b=[5,4,6,34,6,8,7]
// 交
a.filter(item=>b.includes(item))
// 并
[...new Set(a.connect(b))]
// 补
a.filter(item=>!b.includes(item))

 

对象 交并补

var a=[
    {id:‘001‘,name:‘zhangsan‘},
    {id:‘002‘,name:‘tom‘},
    {id:‘003‘,name:‘jack‘},
    {id:‘004‘,name:‘fei‘},
    {id:‘005‘,name:‘ming‘}
    ];
var b=[
    {id:‘003‘,name:‘jack‘},
    {id:‘005‘,name:‘ming‘},
    {id:‘007‘,name:‘hello‘},
    {id:‘008‘,name:‘milk‘},

];
var obj={};
var arr=a.concat(b);
// 交集:定义一个对象,通过其属性值是否出现多次判断交集
arr.reduce(function(pre,cur){
    obj.hasOwnProperty(cur.id)?pre.push(cur):obj[cur.id]=true;
    return pre;
},[]);
// 并集:每次遍历将还未出现的项进行收集
arr.reduce(function(pre,cur){
    if(!obj.hasOwnProperty(cur.id)){
        pre.push(cur);
    }
    obj[cur.id]=true;
    return pre;
},[])
//补集:a中每一项都不在b中
let test=a.reduce(function(pre,cur){
    if(b.every(item=>item.id!==cur.id)){
        pre.push(cur)
    }
    return pre;
},[])

  

技术分享图片

 

前端 数组 对象 交 并 补

原文:https://www.cnblogs.com/lexiaoyao1992/p/13036449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!