Frage

In Javascript, ich habe ein Objekt:

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

Nun, ich möchte dies tun, tun

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

alert(obj.a);

Aber natürlich funktioniert es nicht. Was ist der richtige Weg dynamisch von dem auf dieses Objekt sein würde?

War es hilfreich?

Lösung

kurze Antwort: obj[a]

lange Antwort: obj.field ist nur eine Abkürzung für obj["field"], für den speziellen Fall, in dem der Schlüssel ein konstanter String ohne Leerzeichen, Punkte ist, oder andere unangenehme Dinge. in Ihrer Frage, war der Schlüssel nicht konstant, so einfach die vollständige Syntax verwenden.

Andere Tipps

Wie folgt aus:

obj[a]

Als Randnotiz werden globale Variablen an das „Fenster“ Objekt angebracht ist, so können Sie tun,

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

Dies wird alarmieren "Hallo, hallo, hallo"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top