Javascript - clé d'objet-> valeur

87
var obj = {
   a: "A",
   b: "B",
   c: "C"
}

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

mais je veux m'en sortir avec une variable comme celle-ci

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

Comment faire cela?

Chameron
la source

Réponses:

105

Utilisez la []notation pour les représentations sous forme de chaîne de propriétés:

console.log(obj[name]);

Sinon, il recherche la propriété "name" plutôt que la propriété "a".

David Tang
la source
17

obj["a"]est équivalent à obj.a donc utiliser obj[name]vous obtenez " A "

Longda
la source
1
Veuillez noter que obj [nom] renverra obj.name qui n'est pas défini.
Hamid
1
Utilisez des backticks `` si vous écrivez de courtes quantités de code
JuicY_Burrito
7

Utilisez cette syntaxe:

obj[name]

Notez que obj.xc'est la même chose que obj["x"]pour tous les identifiants JS valides, mais cette dernière forme accepte toutes les chaînes comme clés (pas seulement des identifiants valides).

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

la source
3

J'utilise la syntaxe suivante:

objTest = {"error": true, "message": "test message"};

obtenir une erreur:

 var name = "error"
 console.log(objTest[name]);

obtenir un message:

 name = "message"
 console.log(objTest[name]);
ppaulino
la source
1

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);
sudheer nunna
la source
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

John Murkey
la source