在数组对象中选择键的优雅方法

时间:2018-09-05 09:48:56

标签: javascript arrays ecmascript-5

考虑使用以下json

[
{'key1': { ... }},
{'key2': { ... }},
{'key3': { ... }}
]

我想以一种优雅的方式提取这些对象的密钥,以下代码可以正常工作,但是对我来说似乎很丑。

let result = objects.map(o => Object.keys(o))[0]

最后的[0]是因为返回的值是一个数组数组

3 个答案:

答案 0 :(得分:0)

一个数组只能保存值,对象保存键/值对。在实际操作数据之前,请不要忘记使用JSON.parse(json)

我猜你需要一些类似的东西:

const list = [
    {1: "one"},
    {2: "two"}, 
    {3: "three"}
];

答案 1 :(得分:0)

我编辑了您的JSON。

const data = [
  { 'key2': {  }} ,
  {'key1': {  }},
  {'key3': {  }}
];

const result = [].concat.apply([], data.map(Object.keys));
console.log(result);

答案 2 :(得分:0)

您可以使用.concat().map()方法来获得所需的结果:

let data = [
  {'key1': { }},
  {'key2': { }},
  {'key3': { }}
];

let result = [].concat(...data.map(Object.keys));

console.log(result);

参考: