对比两个对象数组取被删除的和新增的数组

//原数据
let oldArr = [
{faqId: 1, faqName: null}, {faqId: 2, faqName: null}, {faqId: 3, faqName: null}, {faqId: 4, faqName: null},{faqId: 5, faqName: null}]
//新增删除过的数据的数据
let newArr =
[{faqId: 2, faqName: null},{faqId: 4, faqName: null},{faqId: 6, faqName: null},{faqId: 8, faqName: null}]

let NewIdArr = newArr.map((e) => e.faqId); let oldIdArr = oldArr.map((e) => e.faqId); let addIdArr = NewIdArr.filter((i) => { return oldIdArr.indexOf(i) === -1; }); //最后添加的数据faqId let delIdArr = oldIdArr.filter((i) => { return NewIdArr.indexOf(i) === -1; }); //最后删除的数据faqId let addFaqList = [];
      //根据id返回添加的数组对象,删除同理 this.rowSelection.selectedRows.forEach((e) => { addIdArr.forEach((ele) => { if (e.faqId === ele) { addFaqList.push(e); } }); });

 当然了这是手写的方法,loadsh里面有相关的方法,可以去看看

https://www.lodashjs.com/docs/lodash.difference

原文地址:https://www.cnblogs.com/yhhBKY/p/12376108.html