javascript从对象数组获取键名

时间:2019-04-09 01:27:28

标签: javascript jquery

来自

"data":[{"ja":"大阪市"},{"en":"Osaka"}]

我想获得"ja""en"

我尝试了几种方法...

data.map(function(_, i) { return i; });

它返回 数字数组。

console.log(Object.keys(Object.values(data)));

所有审判返回

(2) [0, 1]
0: 0
1: 1

我该怎么办? 请回答我。谢谢。

2 个答案:

答案 0 :(得分:3)

使用map()并返回对象的第一个键。您可以使用Object.keys()

获取密钥

let data = [{"ja":"大阪市"},{"en":"Osaka"}]
let res = data.map(x => Object.keys(x)[0]);
console.log(res)

如果您不想使用[0],请使用flatMap()

let data = [{"ja":"大阪市"},{"en":"Osaka"}]
let res = data.flatMap(x => Object.keys(x));
console.log(res)

注意:第二种方法还将获得除第一种方法外的其他属性。例如

[{"ja":"大阪市","other":"value"},{"en":"Osaka"}] //["ja","other","en"];

答案 1 :(得分:0)

let data = [{"ja":"大阪市"},{"en":"Osaka"}]
var res = data.reduce(function(arr, o) {
  return Object.keys(o).reduce(function(a, k) {
     if (a.indexOf(k) == -1) a.push(k);
        return a;
     }, arr)
  }, []);

console.log(res);