首页 > 解决方案 > 如何将对象文字作为键值对推送到数组?

问题描述

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

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' } ]

我不希望钥匙在那里。

标签: javascriptecmascript-6lodash

解决方案


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

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

这种方法使用ES2015 的计算属性名称

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

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

如果你还是想使用 lodash,你应该key用方括号括起来:

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

推荐阅读