如何将对象数组转换为单个对象

时间:2020-07-17 23:55:35

标签: javascript arrays object

如何将包含多个对象的数组转换为单个对象

我想转换这样的东西:

    [

      {
        'Kyber': {tokenSymbol: 'DAI', avgPrice: 1}
      },
      

      {
       'Bamboo Relay': {tokenSymbol: 'DAI',avgPrice: 1}
      }
   
    ]

对于这样的事情:

{
    'Kyber': {tokenSymbol: 'DAI', avgPrice: 1},
   'Bamboo Relay': {tokenSymbol: 'DAI',avgPrice: 1}
}

2 个答案:

答案 0 :(得分:3)

使用Array.reduce

const data = 
        [ { 'Kyber': { tokenSymbol: 'DAI', avgPrice: 1} } 
        , { 'Bamboo Relay': { tokenSymbol: 'DAI', avgPrice: 1} } 
        ] 
const result = data.reduce((a,c)=>
        {
        for (const [k,v] of Object.entries(c)) a[k]={...v} 
        return a
        }, {})

答案 1 :(得分:0)

您可以通过遍历对象数组来实现该目的,对于每个对象,将该对象合并到结果对象中。以下解决方案可以帮助您

const data = [
  {
    Kyber: { tokenSymbol: 'DAI', avgPrice: 1 }
  },
  {
    'Bamboo Relay': { tokenSymbol: 'DAI', avgPrice: 1 }
  }
]

const res = {}
data.forEach(obj => {
  Object.assign(res, obj)
})

console.log(res)