var obj = {
a: "A",
b: "B",
c: "C"
}
console.log(obj.a); // return string : A
但我希望通过像这样的变量
var name = "a";
console.log(obj.name) // but return undefined
怎么做?
答案 0 :(得分:77)
对属性的字符串表示使用[]
表示法:
console.log(obj[name]);
否则它正在寻找“name”属性,而不是“a”属性。
答案 1 :(得分:13)
obj [“a”]等同于obj.a 所以使用obj [name]得到“A”
答案 2 :(得分:6)
使用以下语法:
obj[name]
请注意,obj.x
与所有有效JS标识符的obj["x"]
相同,但后一种形式接受所有字符串作为键(不仅仅是有效标识符)。
obj["Hey, this is ... neat?"] = 42
答案 3 :(得分:3)
我使用以下语法:
objTest = {"error": true, "message": "test message"};
获取错误:
var name = "error"
console.log(objTest[name]);
获取消息:
name = "message"
console.log(objTest[name]);
答案 4 :(得分:0)
https://jsfiddle.net/sudheernunna/tug98nfm/1/
var days = {};
days["monday"] = true;
days["tuesday"] = true;
days["wednesday"] = false;
days["thursday"] = true;
days["friday"] = false;
days["saturday"] = true;
days["sunday"] = false;
var userfalse=0,usertrue=0;
for(value in days)
{
if(days[value]){
usertrue++;
}else{
userfalse++;
}
console.log(days[value]);
}
alert("false",userfalse);
alert("true",usertrue);
答案 5 :(得分:0)
var o = { cat : "meow", dog : "woof"};
var x = Object.keys(o);
for (i=0; i<x.length; i++) {
console.log(o[x[i]]);
}
IAB
答案 6 :(得分:0)
你可以像这样获得 value
的 key
......
var obj = {
a: "A",
b: "B",
c: "C"
};
console.log(obj.a);
console.log(obj['a']);
name = "a";
console.log(obj[name])