Dynamique noms de variable Javascript

Duplication possible:
Javascript – variables dynamiques

Puis-je avoir quelque chose comme ça, c'est Jquery

for(var i=0;i<10;i++) { var (eval(i+17)) = y; y++; } 

J'ai besoin de cela parce que je veux avoir une variable dynamique créée en vol, tout devrait pouvoir lui attribuer des valeurs.

La bonne réponse ici est d'utiliser des tableaux:

 var arr = []; for (var i = 0; i < 10; i++) { arr[i + 17] = y; y++; } 

Si vous connaissez votre contexte actuel, vous pouvez créer des variables de la même manière. Disons, pour la portée globale ( window ):

 for (var i = 0; i < 10; i++) { window[i + 17] = y; y++; } 

Mais cela signifie que vous piquez sur votre portée avec des noms de variables aléatoires. Gardez-les dans un tableau à la place.

En fait, vous ne devez pas utiliser de tableaux. Vous pouvez également utiliser des objets.

 var y = 0; var obj = {}; var arr = []; for (var i = 0; i < 10; i++) { obj[i + 17] = y arr[i + 17] = y; y++; } console.log(obj); console.log(arr); 

La sortie de la console semblerait (étendue) comme ça:

 Object 17: 0 18: 1 19: 2 20: 3 21: 4 22: 5 23: 6 24: 7 25: 8 26: 9 __proto__: Object [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

JSFiddle à jouer est ici .

Les avantages supplémentaires de l'utilisation de l'objet sont les suivants:

  • Votre obj var devrait être de taille inférieure à votre variable arr , car elle n'aura pas d'indices inutilisés
  • Vous pouvez nommer votre variable dynamique comme vous voulez, par opposition à array – où il doit s'agir d'un nombre entier.

Ce qui suit fonctionnerait pour l'objet et n'ajoute aucune variable au tableau:

 var y = 0; var obj = {}; var arr = []; for (var i = 0; i < 10; i++) { obj['my variable' + (i + 17)] = y arr['my variable' + (i + 17)] = y; y++; } 

L' arr ressemblerait à ceci:

 Object my variable17: 0 my variable18: 1 my variable19: 2 my variable20: 3 my variable21: 4 my variable22: 5 my variable23: 6 my variable24: 7 my variable25: 8 my variable26: 9 __proto__: Object 

Et arr serait vide: []