将数组值的对象转换为对象数组

时间:2018-02-26 20:31:08

标签: javascript node.js

似乎找不到任何讨论此类数据结构操作的线程。

我为要替换的服务提供了新的API架构。原始API返回了一个对象数组。

[
{name: 'Conner', age: 24, gender: 'male'},
{name: 'Bryan', age: 32, gender: 'male'}
]

新的回复看起来像..

{
fields: {
            name: {
                values: [
                    'Conner',
                    'Bryan'
                ]
            },
            age: {
                values: [
                    24,
                    32
                ]
            },
            gender: {
                values: [
                    'male',
                    'male'
                ]
            }
        }
}

将响应转换为现有格式的最佳/最小方法是什么:对象数组。我可以使用vanilla javascript或Lodash。

1 个答案:

答案 0 :(得分:1)

我已经通过length道具的values name得到了它,以确定我们有多少次迭代/人。

尽管如此,这是一个非常奇特的数据集 - 但这里有:

const fields =  {
  name: {
    values: [
      'Conner',
      'Bryan'
    ]
  },
  age: {
    values: [
      24,
      32
    ]
  },
  gender: {
    values: [
      'male',
      'male'
    ]
  }
}

const previous = fields.name.values.map((item, i) => {
  return Object.keys(fields).reduce((obj, key) => {
    obj[key] = fields[key].values[i]

    return obj
  }, {})
})

console.log(previous)