JS两个对象数组合并去重

需求

将数组A——arr1  添加到数组B——arr2,例:

arr1=[ {'id' : '1','text':'dasdas'},{'id' : '2','text':'的味道'},{'id' : '3','text':'十多万群'} ]

arr2=[{'id' : '2','text':'dasdas'},{'id' : '3','text':'的味道'},{'id' : '4','text':'十多万群'} ,{'id' : '5','text':'十多万群'} ,.............]

实现效果:最终的arr2只是比原来增加了id为1的对象元素。因为id为2 3的已经存在。

思路

将arr2的id抽取出来变成一个只有id的数组ids;把arr1数组使用filter方法进行条件筛选,筛选条件为arr1中对象的id如果在数组ids中存在,则返回false;最终filter方法会返回一个符合条件的新数组;然后将该数组添加到arr2中,完成。

//这是实际业务代码逻辑,

let tbArr = this.tableData;//相当于arr2

let dataRecieve = this.$refs[this.activeName].getCheckedNodes(true);//相当于arr1

let ids = tbArr.map(item => item.id);//只有id的数组

//最后这里的res数组就是不重复的数组那部分
let res = dataRecieve.filter((num) => {
    
    let res = !(ids.indexOf(num.id) > -1); //添加的数组对象id是否已经存在
    return res; //false表示不符合条件
 
});


// console.info(res)

this.tableData = this.tableData.concat(res);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值