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

标签 javascript lodash

我有一个如下所示的对象。

{
  A: { lists: 2, list: [ [Object], [Object] ] },
  B: { lists: 2, list: [ [Object], [Object] ] },
  C: { lists: 1, list: [ [Object]] }
}

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

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

我得到的结果是

[{"A":2},{"B":2},{"C":1}]

但我真正想要的是

{A: 2, B: 2, C: 1}

我怎样才能做到这一点?

最佳答案

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

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

关于javascript - 将具有不同键的对象数组转换为一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64770295/

相关文章:

javascript - 我们可以检测是否在具有 jQuery.click() 的 DIV 中单击了链接吗?

javascript - 在 Javascript/Lodash 中比较嵌套对象字段与数组列表

JavaScript/下划线/lodash : Comparing object in array of objects and remove the matched object

javascript - lodash 怎么会有一个驻留在不在存储库中的目录中的构建脚本?

javascript - 如何让 casperJS 等待 .change() 事件完成?

javascript - jQuery 是否有一种方法可以检查数组的所有值以查看它们是否满足某些条件?

javascript - 单击 P5.JS 中的 Triangle 项目允许单击三 Angular 形修复之外

javascript - jQuery - 比较数组中的indexOF

npm - 浏览器中的 lodash npm 分发

javascript - 如何使用 Lodash 通过多个潜在属性过滤对象集合?