如何获取数组中对象的属性名称?

Aec*_*evy 7 javascript arrays object

这是我的数组:

var testeArray = [
    {name: "Jovem1", esteira: "Macaco"},
    {name: "Jovem", esteira: "Doido", horse: "Chimbinha"}
];
Run Code Online (Sandbox Code Playgroud)

从上面,我想得到一个像这样的数组:

var propertyName = ["name", "esteira", "horse"];
Run Code Online (Sandbox Code Playgroud)

该数组包含对象数组中对象的所有属性名称。我尝试在 JavaScript 对象中找到属性名称的表单数组,但结果是:

['0', '1']
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 6

您可以使用 迭代数组并Array#forEach获取键Object.keys并收集对象中的名称。然后将密钥作为结果。

var testeArray = [{name: "Jovem1", esteira: "Macaco"}, {name: "Jovem", esteira: "Doido", horse: "Chimbinha" }],
    names = Object.create(null),
    result;

testeArray.forEach(function (o) {
    Object.keys(o).forEach(function (k) {
        names[k] = true;
    });
});

result = Object.keys(names);
console.log(result);
Run Code Online (Sandbox Code Playgroud)

ES6 与Set扩展语法...

var array = [{name: "Jovem1", esteira: "Macaco"}, {name: "Jovem", esteira: "Doido", horse: "Chimbinha" }],
    names = [...array.reduce((s, o) => (Object.keys(o).forEach(k => s.add(k)), s), new Set)];
console.log(names);
Run Code Online (Sandbox Code Playgroud)