2011-02-15 109 views
47
var obj = { 
    a: "A", 
    b: "B", 
    c: "C" 
} 

console.log(obj.a); // return string : A 

,但我想通过一个变量获得通过这样的Javascript - 对象键 - >值

var name = "a"; 
console.log(obj.name) // but return undefined 

如何做到这一点?

回答

64

使用[]记法性质的字符串表示:

console.log(obj[name]); 

否则它寻找“名称”属性,而不是“一个”属性。

5

使用此语法:

obj[name] 

注意obj.x相同obj["x"]所有有效JS标识符,但后者的形式接受所有的字符串作为键(不只是有效的标识符)。

obj["Hey, this is ... neat?"] = 42 
12

的obj [ “一”]等同于obj.a 所以用OBJ [名]你拿 “A”

+0

请注意,OBJ [NAME]将返回未定义的obj.name。 – Hamid 2015-07-02 21:45:25

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); 
+0

https://jsfiddle.net/sudheernunna/tug98nfm/1/ – 2017-12-11 13:24:17

相关问题