数组对象实现一 一对比(索引和id相同的保留原数据,原数组没有的数据从默认列表加进去)
// 接口数据(缺数据)
let arr1 = [
{
left: [
{ id: 1, name: "cc", check: true, displayName: "检测框IOU" },
{ id: 2, name: "yy", check: true, displayName: "aaa" },
{ id: 3, name: "dd", check: false, displayName: "ixxxxou" },
],
},
{
left: [
{ id: 1, name: "cc", check: false, displayName: "iou" },
{ id: 2, name: "yy", check: true, displayName: "aaa" },
{ id: 3, name: "dd", check: true, displayName: "ixxxxou" },
],
},
];
// 默认数据(全数据)
let arr2 = [
{
left: [
{ id: 1, name: "cc", check: false, displayName: "检测框IOU" },
{ id: 2, name: "yy", check: false, displayName: "aaa" },
{ id: 3, name: "dd", check: false, displayName: "ixxxxou" },
{ id: 4, name: "dd", check: false, displayName: "xin1" },
{ id: 5, name: "dd", check: false, displayName: "xin2" },
],
},
];
arr1.forEach((item1,index1)=>{
let arr3 = item1.left
arr2[0].left.forEach((item2)=>{
let isEqual = false;
arr3.forEach((item3)=>{
if(item2.id === item3.id){
isEqual = true;
return false;
}
})
if(!isEqual){
arr1[index1].left.push(item2);
}
})
})
console.log(arr1)//最终拼接好的数组
arr1: [
{
left: [
{ id: 1, name: "cc", check: true, displayName: "检测框IOU" },
{ id: 2, name: "yy", check: true, displayName: "aaa" },
{ id: 3, name: "dd", check: false, displayName: "ixxxxou" },
{ id: 4, name: "dd", check: false, displayName: "xin1" },
{ id: 5, name: "dd", check: false, displayName: "xin2" },
],
},
{
left: [
{ id: 1, name: "cc", check: false, displayName: "iou" },
{ id: 2, name: "yy", check: true, displayName: "aaa" },
{ id: 3, name: "dd", check: true, displayName: "ixxxxou" },
{ id: 4, name: "dd", check: false, displayName: "xin1" },
{ id: 5, name: "dd", check: false, displayName: "xin2" },
],
},
];
数组对象实现一 一对比(索引和id相同的保留原数据,原数组没有的数据从默认列表加进去)
最新推荐文章于 2024-02-05 17:06:35 发布