Domanda

In Javascript, ho un oggetto:

obj = { one: "foo", two: "bar" };

Ora, voglio farlo

var a = 'two';
if(confirm('Do you want One'))
{
  a = 'one';
}

alert(obj.a);

Ma ovviamente non funziona. Quale sarebbe il modo corretto di fare riferimento a questo oggetto in modo dinamico?

È stato utile?

Soluzione

risposta breve: obj[a[

risposta lunga: obj.field è solo una scorciatoia per obj [" field "] , per il caso speciale in cui la chiave è una stringa costante senza spazi, punti o altre cose brutte. nella tua domanda, la chiave non era una costante, quindi usa semplicemente la sintassi completa.

Altri suggerimenti

In questo modo:

obj[a]

Come nota a margine, le variabili globali sono associate alla finestra " " oggetto, quindi puoi farlo

var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);

Questo avviserà " ciao, ciao, ciao "

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top