如何使用带有Object.keys函数的$ .map从给定Object.keys的数组中获取第一个值?

时间:2019-01-30 17:07:43

标签: javascript jquery arrays json

我有这个json数组:

//val
0: {name: "jeg", class: "klase-jeg", id: "id-jeg"} 1: {age: 11, id: "jeg-id-11"} 2: {mail: "jeg mail", class: "jeg-klas-mail"}

我想获取每个json的第一个键:

(name,age,mail)

这是我的功能:

$.map(val, Object.keys) //Result: ["name", "class", "id", "age", "id", "mail", "class"]

但是结果就是所有键。

要从json获取第一个密钥,我就使用了这个

obj = val[0]; Object.keys(obj)[0]); //Result: name

,我尝试将其与地图一起使用,但没有成功:(

$.map(val, Object.keys[0]) //failed

我可以使用each或for,但是我想知道是否可以将map与object.key一起使用以获取每个json的第一个键。

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您可以这样做:

假设:

a = [{name: "jeg", class: "klase-jeg", id: "id-jeg"},{age: 11, id: "jeg-id-11"},{mail: "jeg mail", class: "jeg-klas-mail"}]

然后做:

    a.map((el)=>{
    return Object.keys(el)[0];
    });

希望有帮助!

答案 1 :(得分:-1)

您可以像这样使用mapObject.keys

const val = [
  {name: "jeg", class: "klase-jeg", id: "id-jeg"},
  {age: 11, id: "jeg-id-11"},
  {mail: "jeg mail", class: "jeg-klas-mail"}]

const firstKeys = val.map(a => Object.keys(a)[0]);
console.log(firstKeys)

/*
  In jquery:
  $.map(val, a => Object.keys(a)[0])
*/

$.map(val, Object.keys[0])将引发错误,因为Object.keysfunction,而不是数组。

更新:请注意,对象中属性的顺序为not guaranteed in javaScript