【问题标题】:how to loop and convert an array of objects to an object with key value pair如何循环并将对象数组转换为具有键值对的对象
【发布时间】:2020-11-02 15:22:48
【问题描述】:

我有一个类似这样的对象数组

[
  {name: "John", country: "USA", revision: 1},
  {name: "Mark", country: "England", revision: 0},
  {name: "Bruce", country: "France", revision: 1}
]

我想把它转换成一个带有名字键的键值对的对象,像这样

{
  John : {name: "John", country: "USA", revision: 1},
  Mark : {name: "Mark", country: "England", revision: 0},
  Bruce : {name: "Bruce", country: "France", revision: 1}
}

这是我所做的,但它似乎不起作用

let component = contents.reduce(((content, current}) => {
    content[name] = current;
    return content;
}), {});

【问题讨论】:

标签: javascript


【解决方案1】:

这可以使用Array.prototype.reduce func 来完成。

const input = [
  {name: "John", country: "USA", revision: 1},
  {name: "Mark", country: "England", revision: 0},
  {name: "Bruce", country: "France", revision: 1}
];

const output = input.reduce((acc, {name, ...item}) => {
  acc[name] = item;
  return acc;
}, {});
console.log(output);

【讨论】:

  • 你可以使用.reduce()参数的解构:input.reduce((acc, {name, ...rest}) => (acc[name] = item, acc), {})
猜你喜欢
  • 2017-09-23
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多