我传递了以下对象:
var myVar = { typeA: { option1: "one", option2: "two" } }
我希望能够从上述结构中提取密钥typeA
。
此值可以每次更改,以便下次可以typeB
。
所以我想知道是否有办法让我做类似下面的伪代码:
var theTypeIs = myVar.key();
这样当我可以传递这个对象并且我可以拉出对象的第一个值时,在这种情况下它是typeA
然后基于它我可以用option1
执行不同的操作option2
。
答案 0 :(得分:123)
如果您确定对象中始终只有一个键,那么您可以使用Object.keys
:
theTypeIs = Object.keys(myVar)[0];
答案 1 :(得分: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
}
});
答案 2 :(得分:14)
如果您想获取myVar
对象的密钥名称,则可以使用Object.keys()
来实现此目的。
var result = Object.keys(myVar);
alert(result[0]) // result[0] alerts typeA
答案 3 :(得分:0)
我一直在寻找结果,但最终还是得到了
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
}