1 回答
TA贡献1877条经验 获得超6个赞
这可能对你有帮助!!
let json1 = [{"name":"Stock",
"data":
[{"name":"Fish",
"amount":80,
"color":"#0000ff"
},
{"name":"Meat",
"amount":20,
"color":"#fd0000"
}]
}]
let json2 = [{"name":"Stock",
"data":
[{"name":"Fish",
"amount":5,
"color":"#008000"
},
{"name":"Meat",
"amount":10,
"color":"#00FF00"
}]
}]
let amountMap = {};
let stockMap = {};
let result = [];
function addToResult(jsonA){
jsonA.forEach((stock)=>{
if( stockMap[stock.name]==undefined ){
stockMap[stock.name] = stock;
result.push(stockMap[stock.name]);
}
stock.data.forEach((data)=>{
if( amountMap[stock.name+";"+data.name]==undefined ){
amountMap[stock.name+";"+data.name] = data.amount;
// no need to push as data already present there
}else{
amountMap[stock.name+";"+data.name] = amountMap[stock.name+";"+data.name] - data.amount;
data.amount = amountMap[stock.name+";"+data.name]; //replace amount
stockMap[stock.name].data.push(data);
}
});
});
}
addToResult(json1);
addToResult(json2);
console.log(result);
添加回答
举报