Comment référencer un objet de manière dynamique?
-
05-07-2019 - |
Question
En Javascript, j'ai un objet:
obj = { one: "foo", two: "bar" };
Maintenant, je veux faire ceci
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
Mais bien sûr, ça ne marche pas. Quelle serait la bonne façon de référencer cet objet de manière dynamique?
La solution
réponse courte: obj [a]
Réponse longue: obj.field
n'est qu'un raccourci pour obj ["champ"]
, dans le cas particulier où la clé est une chaîne constante sans espaces, points, ou d'autres choses méchantes. dans votre question, la clé n'était pas une constante, utilisez simplement la syntaxe complète.
Autres conseils
Comme ceci:
obj[a]
En note de bas de page, les variables globales sont attachées à la "fenêtre". objet, de sorte que vous pouvez faire
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
Ceci alertera "bonjour, bonjour, bonjour"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow