假设我们有两个这样的对象-
const obj1 = { a:12, b:8, c:17 }; const obj2 = { a:2, b:4, c:1 };
我们需要编写一个接受两个这样的对象的JavaScript函数。
该函数应将相同属性的值求和成单个属性。因此,最终对象应该看起来像这样-
const output = { a:14, b:12, c:18 };
注–为简单起见,我们仅使用了两个对象,但是我们需要编写函数,以便它可以接受任意数量的对象并添加其属性值。
const obj1 = { a:12, b:8, c:17 }; const obj2 = { a:2, b:4, c:1 }; const sumObjectsByKey = (...objs) => { const res = objs.reduce((a, b) => { for (let k in b) { if (b.hasOwnProperty(k)) a[k] = (a[k] || 0) + b[k]; } return a; }, {}); return res; } console.log(sumObjectsByKey(obj1, obj2));
输出结果
控制台中的输出将是-
{ a: 14, b: 12, c: 18 }