如何将对象文字作为键值对推入数组?

时间:2018-07-12 07:49:05

标签: javascript ecmascript-6 lodash

将每对配对成数组的最佳方法是什么?

const myObject = {
  firstName: 'John',
  surname: 'Doe',
  city: 'New York'
}

收件人:

[{'firstName': 'John'}, {'surname': 'Doe'}, {'city': 'New York'}]

顺便说一句,旧帖子建议使用lodash映射

const newArray = _.map(myObject, (value, key) => ({key, value}))

但是它会返回类似的内容:

[ { key: 'firstName', value: 'John' },
 { key: 'surname', value: 'Doe' },
 { key: 'city', value: 'New York' } ]

我不希望钥匙在那里。

1 个答案:

答案 0 :(得分:1)

您可以使用纯JS实现所需的结果:

Object.keys(myObject).map(key => ({[key]: myObject[key]}));

此方法使用ES2015的computed property names

如评论中所建议,您也可以使用Object.entries

Object.entries(myObject).map(([p, v]) => ({[p]: v}))

如果仍然要使用lodash,则应将key用方括号括起来:

const newArray = _.map(myObject, (value, key) => ({[key], value}))