【问题标题】:Combine array of objects into a single object [duplicate]将对象数组组合成一个对象[重复]
【发布时间】:2020-06-22 19:06:03
【问题描述】:

我有这样的数据。

[
  {
    key: 'myKey'
    value: 'myValue'
  },
  {
    key: 'mySecondKey'
    value: 'mySecondValue'
  },
  {
    key: 'myThirdKey'
    value: 'myThirdValue'
  },
]

对象的数量取决于帐户设置的值。我正在尝试以类似这样的格式返回它

{
  mykey: 'myValue'
  mySecondKey: 'mySecondValue'
  myThirdkey: 'myThirdValue'
}

对我将如何做这件事有什么建议吗?

【问题讨论】:

    标签: javascript arrays object


    【解决方案1】:

    你可以做一些事情,比如

    const src = [{key:'myKey',value:'myValue'},{key:'mySecondKey',value:'mySecondValue'},{key:'myThirdKey',value:'myThirdValue'},],
    
        result = Object.assign({}, ...src.map(o => ({[o.key]: o.value})))
        
    console.log(result)
    .as-console-wrapper{min-height:100%;}

    【讨论】:

      【解决方案2】:

      您可以为此使用reduce

      const data = [{key:"myKey",value:"myValue"},{key:"mySecondKey",value:"mySecondValue"},{key:"myThirdKey",value:"myThirdValue"}];
      
      const res = data.reduce((obj, {key, value}) => ({...obj, [key]: value}), {});
      
      console.log(res);

      【讨论】:

        【解决方案3】:

        其他答案可行,但我觉得它们有点复杂,这是一个简单的 for of 循环:

        const data = [
          {
            key: 'myKey',
            value: 'myValue'
          },
          {
            key: 'mySecondKey',
            value: 'mySecondValue'
          },
          {
            key: 'myThirdKey',
            value: 'myThirdValue'
          }
        ];
        
        const result = {};
        
        for(const {key, value} of data) {
          result[key] = value;
        }
        
        console.log(result);

        【讨论】:

          猜你喜欢
          • 2021-11-12
          • 1970-01-01
          • 1970-01-01
          • 2022-01-04
          • 2021-11-11
          • 2018-12-31
          • 1970-01-01
          • 2014-08-30
          • 1970-01-01
          相关资源
          最近更新 更多