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

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

pero quiero llegar a funcionar a través de una variable como estoJavascript - Objeto número-> valor

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

Cómo hacer esto?

Respuesta

64

Uso [] notación para representaciones de serie de propiedades:

console.log(obj[name]); 

por lo demás es buscar la propiedad "nombre", en lugar de la "a" propiedad.

5

Utilice esta sintaxis:

obj[name] 

Tenga en cuenta que obj.x es lo mismo que obj["x"] para todos los identificadores válidos JS, pero la última forma acepta todas cadena como llaves (no sólo los identificadores válidos).

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

obj [ "a"] es equivalente a lo que el uso obj.a obj [nombre] que se obtiene "A"

+0

favor atención que obj [nombre] se return obj.name que no está definido. – Hamid

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/ –