我确实有两个对象包含密钥,比如
var a = {bar:[1,2], foo:[7,9]}
var b = {bar:[2,2], foo:[3,1]}我想知道休闲结果:
var c = {bar:[3,4], foo:[10,10]}我已经有了一个for逻辑,例如:
for (let key in b) {
if (a[key]) {
a[key][0] += b[key][0];
a[key][1] += b[key][1];
}
else a[key] = b[key];
}但我想以一种套路的方式来阐述这一逻辑。我该怎么做呢?
发布于 2019-02-04 21:35:54
您可以使用普通JavaScript和Object.entries、concat和reduce来完成这一任务。
const a = { bar: [1,2], foo: [7,9] };
const b = { bar: [2,2], foo: [3,1] };
const entries = Object.entries(a).concat(Object.entries(b));
const result = entries.reduce((accum, [key, val]) => {
accum[key] = accum[key] ? accum[key].map((x, i) => x + val[i]) : val;
return accum;
}, { });
console.log(result);
https://stackoverflow.com/questions/54522863
复制相似问题