【问题标题】:from array of objects to an object [duplicate]从对象数组到对象[重复]
【发布时间】:2019-12-04 14:34:21
【问题描述】:

我有一个这样的数组:

array = [{profile: 'pippo'}, {profile: 'mickey'}]

我想把它改成这样:

object = {0: 'pippo', 1: 'mickey'}

【问题讨论】:

标签: javascript arrays object


【解决方案1】:

您可以使用简短的reduce

const array = [{profile: 'pippo'}, {profile: 'mickey'}]

const output = array.reduce((a, o, i) => (a[i] = o.profile, a), {})
console.log(output)

甚至可以使用Object.assign:

const array = [{profile: 'pippo'}, {profile: 'mickey'}]

const output = Object.assign({}, array.map(o => o.profile))
console.log(output)

但是,您的输出与数组的格式相同,因此您可以使用 map 并按索引访问元素(这实际上取决于用例):

const array = [{profile: 'pippo'}, {profile: 'mickey'}]

const output = array.map(o => o.profile)
console.log(output)

【讨论】:

    【解决方案2】:

    将带有Array.map()spread 的配置文件值提取到一个对象中:

    const array = [{profile: 'pippo'}, {profile: 'mickey'}]
    
    const result = { ...array.map(o => o.profile) }
    
    console.log(result)

    【讨论】:

      【解决方案3】:

      使用reduce 会很容易。那里有它的工作原理和一个工作示例。

      array = [{
        profile: 'pippo'
      }, {
        profile: 'mickey'
      }]
      
      
      const finalObj = array.reduce((accum, cv, index) => {
        accum[index] = cv['profile']
        return accum;
      }, {})
      
      console.log(finalObj)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-20
        • 1970-01-01
        • 2017-08-08
        • 2018-03-25
        • 2013-01-03
        • 1970-01-01
        • 2018-05-11
        相关资源
        最近更新 更多