获取对象属性名称

我传递了以下物体:

var myVar = { typeA: { option1: "one", option2: "two" } }

我希望能够从上面的结构中拉出键 typeA

这个值每次都可以更改,所以下次可以是 typeB

所以我想知道是否有一种方法可以让我做一些像下面这样的伪代码:

var theTypeIs = myVar.key();

通过这种方式,我可以传递这个对象,我可以拉出对象的第一个值,在这种情况下,它是 typeA,然后基于它,我可以用 option1option2做不同的事情。

155542 次浏览

如果您想获得 myVar对象的键名,那么可以使用 Object.keys()来实现此目的。

var result = Object.keys(myVar);


alert(result[0]) // result[0] alerts typeA

如果你确定对象中总是只有一个键,那么你可以使用 Object.keys:

theTypeIs = Object.keys(myVar)[0];

和其他答案一样,你可以通过 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
}
});

我一直在寻找这个结果,最后我得到了;

const MyObject = {
SubObject: {
'eu': [0, "asd", true, undefined],
'us': [0, "asd", false, null],
'aus': [0, "asd", false, 0]
}
};

对于那些希望结果为字符串的用户:

Object.keys(MyObject.SubObject).toString()

输出: "eu,us,aus"

对于那些希望将结果作为数组的用户:

Array.from(Object.keys(MyObject))

输出: Array ["eu", "us", "aus"]

对于那些正在寻找“包含”类型方法的人: 结果是:

console.log(Object.keys(MyObject.SubObject).indexOf("k"));

输出: -1

console.log(Object.keys(MyObject.SubObject).indexOf("eu"));

输出: 0

console.log(Object.keys(MyObject.SubObject).indexOf("us"));

输出: 3

作为布尔结果:

console.log(Object.keys(MyObject.SubObject).includes("eu"));

输出: true


在你的情况下;

var myVar = { typeA: { option1: "one", option2: "two" } }


// Example 1
console.log(Object.keys(myVar.typeA).toString()); // Result: "option1, option2"


// Example 2
console.log(Array.from(Object.keys(myVar.typeA))); // Result: Array ["option1", "option2" ]
    

// Example 3 as numeric
console.log((Object.keys(myVar.typeA).indexOf("option1")>=0)?'Exist!':'Does not exist!'); // Result: Exist!
    

// Example 3 as boolean
console.log(Object.keys(myVar.typeA).includes("option2")); // Result: True!
    

// if you would like to know about SubObjects
for(var key in myVar){
// do smt with SubObject
console.log(key); // Result: typeA
}


// if you already know your "SubObject"
for(var key in myVar.typeA){
// do smt with option1, option2
console.log(key); // Result: option1 // Result: option2
}