如何合并两个具有重复键和值的对象

wan*_*v87 0 javascript javascript-objects

我有两个对象如下:

const a = {
  '2021-1': 10,
  '2021-2': 8
}
const b = {
  '2021-1': 10,
  '2020-3': 10,
  '2020-4': 15,
  '2020-5': 12,
  '2020-6': 4
}
Run Code Online (Sandbox Code Playgroud)

我想合并两个对象并总结重复键的值。

预期结果是:

{
  '2021-1': 20,
  '2021-2': 8,
  '2020-3': 10,
  '2020-4': 15,
  '2020-5': 12,
  '2020-6': 4
}
Run Code Online (Sandbox Code Playgroud)

hev*_*ev1 5

您可以使用第一个对象的副本作为初始值,对第二个对象的条目执行归约操作以对每个键的值求和。

const a = {
  '2021-1': 10,
  '2021-2': 8
}
const b = {
  '2021-1': 10,
  '2020-3': 10,
  '2020-4': 15,
  '2020-5': 12,
  '2020-6': 4
}
const res = Object.entries(b).reduce((acc,[k,v])=>{
  acc[k] = (acc[k] || 0) + v;
  return acc;
}, {...a});
console.log(res);
Run Code Online (Sandbox Code Playgroud)