31 votes

Comment afficher la valeur d'une autre variable ?

var foo = "bar"
var bar  = "realvalue";

Est-il possible d'imprimer la valeur de bar en utilisant foo ?

44voto

Akhil Sekharan Points 6018

Approche 1 : variable globale

var foo = "bar";
var bar  = "realvalue";
alert(window[foo]);

OU

Approche 2 : espace de noms
Divisez vos js en espaces de noms

var namespace = {
 foo : "bar",
 bar : "realvalue"
};
alert(namespace[namespace.foo]);

17voto

cowls Points 10489

Oui, vous pouvez faire quelque chose comme ça avec eval

var foo = "bar";
var bar  = "realvalue";
alert(eval(foo));

EDIT : Il semble que beaucoup de personnes soient contre l'utilisation de la fonction eval(). Mon conseil avant de l'utiliser est de lire cette question : Pourquoi l'utilisation de la fonction JavaScript eval est-elle une mauvaise idée ?

Une fois que vous aurez compris les risques, vous pourrez décider par vous-même si vous souhaitez l'utiliser.

14voto

Edga Points 1266

Si c'est une variable globale, vous pouvez utiliser window[foo]

10voto

Jack Points 88446

Ne faites pas ce genre de constructions avec des variables non-globales, mettez simplement en scope les variables que vous auriez autrement en circulation.

var myscope = {
    bar: 'realvalue'
},
foo = 'bar';

alert(myscope[foo]);

En fait, ce qui précède ne tient pas compte du comportement par défaut des navigateurs, qui consiste à enregistrer également les variables globales dans la fenêtre de l'utilisateur. window ce qui lui permet de fonctionner également pour des choses comme Node.js.

2voto

palaѕн Points 23333

Les variables globales sont définies dans l'onglet window donc vous pouvez utiliser :

var bar = "realvalue";
alert(window["bar"]);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X