将具有不同键的对象数组转换为一个对象

use*_*298 2 javascript lodash

我有一个像下面这样的对象。

{
  A: { lists: 2, list: [ [Object], [Object] ] },
  B: { lists: 2, list: [ [Object], [Object] ] },
  C: { lists: 1, list: [ [Object]] }
}
Run Code Online (Sandbox Code Playgroud)

在我对对象列表结果进行映射后,如下所示

 const list = Object.entries(result).map(([k, v]) => ({[k]: v.lists}));
Run Code Online (Sandbox Code Playgroud)

我得到的结果是

[{"A":2},{"B":2},{"C":1}]
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是

{A: 2, B: 2, C: 1}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Der*_*ang 8

您可以Array.prototype.reduce按如下方式使用。

const list = Object.entries(result).reduce((acc, [k, v]) => {
  acc[k] = v.lists;
  return acc;
}, {});
Run Code Online (Sandbox Code Playgroud)