Javascript - chiave oggetto-> valore


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

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

ma voglio cavarmela con una variabile come questa

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

Come fare questo?

Risposte:


109

Usa la []notazione per le rappresentazioni di stringa delle proprietà:

console.log(obj[name]);

Altrimenti cerca la proprietà "name", piuttosto che la proprietà "a".


17

obj["a"]equivale a obj.a quindi usa obj[name]ottieni " A "


1
Si prega di notare che obj [nome] restituirà obj.name che non è definito.
Hamid

1
Usa i backtick `` se stai scrivendo brevi quantità di codice
JuicY_Burrito

8

Usa questa sintassi:

obj[name]

Si noti che obj.xè lo stesso obj["x"]di tutti gli identificatori JS validi, ma quest'ultima forma accetta tutte le stringhe come chiavi (non solo identificatori validi).

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

3

Uso la seguente sintassi:

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

ottenere errore:

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

ricevi messaggio:

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

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

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.