【问题标题】:I want to convert Object Array to Object with JavaScript [duplicate]我想用 JavaScript 将对象数组转换为对象 [重复]
【发布时间】:2021-01-04 06:41:05
【问题描述】:

对不起...我在示例上犯了一个错误...

我想将对象数组转换为单个对象。

之前

[
 {key: "A", value: "a"},
 {key: "B", value: "b"},
 {key: "C", value: "c"},
 .
 .
 .
]

之后

{
 A: "a",
 B: "b",
 C: "c"
 .
 .
 .
}

我尝试使用 Object.assign(),但效果不佳。

你知道有什么好的方法吗?

【问题讨论】:

  • @NickParsons:奇怪的是,这个骗子并没有被另一个金徽章所有者关闭,他是该线程中接受答案的作者(完全相同)
  • @YevgenGorbunkov 哦,哈哈,甚至没有意识到。我猜这个问题/答案是 3 岁,所以他们可能已经忘记了他们的旧答案......
  • @Jamm :不过,您似乎切换方向太快了,我的答案的最新编辑返回了您的预期输出。

标签: javascript node.js arrays object


【解决方案1】:

您可以使用Array.prototype.reduce():

const src = [{key:"A",value:"a"},{key:"B",value:"b"},{key:"C",value:"c"}],

     result = src.reduce((acc, {key,value}) => 
      (acc[key] = value, acc), {})
      
console.log(result)

【讨论】:

    【解决方案2】:

    你可以spread ...Object.assign的对象。

    const 
        data = [{ name: 'A' }, { firstname: 'Jamm' }, { age: "23" }],
        object = Object.assign({}, ...data);
    
    console.log(object);

    【讨论】:

      【解决方案3】:

      您可以使用reduce 并在回调内部迭代对象以将键和值添加到累加器对象

      let data = [{
          name: 'A'
        },
        {
          firstname: 'Jamm'
        },
        {
          age: "23"
        },
      ]
      const newData = data.reduce((acc, curr) => {
      
        for (let keys in curr) {
          acc[keys] = curr[keys]
      
        }
      
        return acc;
      }, {});
      
      console.log(newData)

      【讨论】:

        【解决方案4】:

        您可以使用Array.prototype.reduce 将单个对象组合成一个对象:

        const data = [{ name: 'A' }, { firstname: 'Jamm' }, { age: '23'}];
        
        function combineObjects(arr) {
          return arr.reduce((acc, o) => {
            return { ...o,  ...acc };
          }, {});
        }
        console.log(combineObjects(data));

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-02-06
          • 2018-03-18
          • 2015-04-21
          • 2017-01-14
          • 2015-01-02
          • 1970-01-01
          • 2019-10-22
          相关资源
          最近更新 更多