【问题标题】:How to push object literals as key-value pairs to array?如何将对象文字作为键值对推送到数组?
【发布时间】:2018-07-12 07:49:05
【问题描述】:

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

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

我不希望钥匙在那里。

【问题讨论】:

  • 更改为({ [key]: value })
  • 太棒了,非常感谢!如果您将其放在答案中,我将标记已回答的问题。再次感谢!
  • Object.entries(myObject).map(([p, v]) => ({[p]: v}))

标签: javascript ecmascript-6 lodash


【解决方案1】:

你可以使用普通的 JS 实现所需的结果:

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

此方法使用 ES2015 的computed property names

按照 cmets 的建议,您也可以使用 Object.entries

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

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

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

【讨论】:

  • 你说得对,我选择了你的第一个选项。谢谢!
猜你喜欢
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 2022-08-10
  • 1970-01-01
  • 2014-08-08
  • 2020-11-17
  • 2022-01-23
相关资源
最近更新 更多