/*
要求:根据arr的temp与arr1下的a数组的temp匹配相同的情况下,要求保留arr1里面对应temp对象的值,其余的删除;如果arr存在的temp对象,arr1没有,则该temp对象添加进入arr1里面的a,并且temp里面对应的属性值为0(除了temp)
*/
var arr = [
{temp:1,x1:1,x2:2},
{temp:2,x3:3,x6:6},
{temp:3,x4:4,x7:7},
{temp:4,x5:5,x8:8},
]
var arr1 = [
{
a:[
{temp:1,x1:1,x2:1},
{temp:2,x3:1,x6:1},
{temp:3,x4:1,x7:1},
{temp:5,x4:1,x7:1},
]
},
{
a:[
{temp:1,x1:1,x2:1},
{temp:2,x3:1,x6:1},
{temp:3,x4:1,x7:1},
{temp:5,x4:1,x7:1},
]
}
]
//逻辑分两步走
// 1 首先是要arr1下的a数组与arr匹配,判断a里面要保留什么对象,删除什么对象
arr1.map(function(item){
item.a.map(function(json,index){
var status = false;
arr.map(function(data){
if(json.temp == data.temp){
status = true
}
})
if(!status){
item.a.splice(index,1)
}
})
})
// 2 此时的arr1已经成功匹配arr,有相同交集的存在a里面,第二步是判断arr里面没有的添加进入arr1的a当中,否则不做处理
arr.map(function(item){
arr1.map(function(json){
var aaa = false;
json.a.map(function(data){
if(item.temp == data.temp){
aaa = true;
}
})
if(!aaa){
item.x5 = 0;
item.x8 = 0
json.a.push(item)
}
})
})
console.log(arr1)
主要是记录,方便以后查看