Javascript获取对象属性名称

use*_*415 70 javascript

我传递了以下对象:

var myVar = { typeA: { option1: "one", option2: "two" } }
Run Code Online (Sandbox Code Playgroud)

我希望能够typeA从上面的结构中取出密钥.

这个值每次都可以改变,以便下次可以typeB.

所以我想知道是否有办法让我做类似下面的伪代码:

var theTypeIs = myVar.key();
Run Code Online (Sandbox Code Playgroud)

这种方式,当我可以传递这个对象,我可以拉出对象的第一个值,在这种情况下它是typeA然后基于我可以用option1和做不同的事情option2.

zzz*_*Bov 127

如果您确定对象中始终只有一个键,那么您可以使用Object.keys:

theTypeIs = Object.keys(myVar)[0];
Run Code Online (Sandbox Code Playgroud)


dop*_*ner 18

像其他答案一样,你可以做theTypeIs = Object.keys(myVar)[0];第一把钥匙.如果您需要更多按键,可以使用

Object.keys(myVar).forEach(function(k) {
    if(k === "typeA") {
        // do stuff
    }
    else if (k === "typeB") {
        // do more stuff
    }
    else {
        // do something
    }
});
Run Code Online (Sandbox Code Playgroud)


Sum*_*ati 14

如果要获取myVar对象的密钥名称,则可以将其Object.keys()用于此目的.

var result = Object.keys(myVar); 

alert(result[0]) // result[0] alerts typeA
Run Code Online (Sandbox Code Playgroud)

  • 这将返回["typeA"]而不是"typeA" (3认同)