Il est possible, mais je vous suggère de placer ces tableaux en tant que propriétés d'un objet, qui le rend beaucoup plus facile
var arrays {
arr1 : [1,2,3],
arr2 : [4,5,6]
}
var arrNum = 2;
var arr = arrays["arr" + arrNum] // arrays.arr2
Les propriétés des objets sont accessibles à la fois à l'aide du .
opérateur et comme éléments nommés en utilisant la notation ["propname"]
.
L'utilisation de eval
ou l'utilisation de l'astuce ci-dessus sur window
est déconseillée. L'évaluation est normalement un signe de code mal construit, et l'utilisation de fenêtre dépend de la fenêtre étant l'objet variable de la portée globale - cela ne fait partie d'aucune spécification et ne fonctionnera pas nécessairement à travers les navigateurs.
Il convient de noter que ce n'est pas un accès au tableau, c'est l'accès aux objets. Sans parler de cet exemple ne fonctionne que si les tableaux sont dans la portée globale. – Matt
Je vais devoir donner cette réponse, car c'est la méthode que j'ai utilisée. Fondamentalement, j'avais des tableaux qui étaient générés dans le document, de sorte qu'ils avaient une portée mondiale. Je dois donner un clin d'œil à Sean Kinsey (et une discussion) pour une solution plus robuste, tout en m'aidant à comprendre ce que j'utilise. Merci a tous. –