J'ai lu sur Internet et certains sites affirment que ce n'est pas possible, d'autres disent que si et donnent un exemple, d'autres encore réfutent cet exemple, etc.
-
Comment déclarer un tableau à 2 dimensions en JavaScript ? (en supposant que ce soit possible)
-
Comment puis-je accéder à ses membres ? (
myArray[0][1]
oumyArray[0,1]
?)
26 votes
En supposant une définition quelque peu pédante, il est techniquement impossible de créer un tableau 2d en javascript. Mais vous pouvez créer un tableau de tableaux, ce qui revient au même.
0 votes
Duplicata de - stackoverflow.com/q/6495187/104380
0 votes
Pour un tableau 2D 5x3, je ferais comme suit
var arr2D = new Array(5).fill(new Array(3));
De plus, si vous ne voulez pas que les cellules soient "indéfinies", vous pouvez faire comme suitvar arr2D = new Array(5).fill(new Array(3).fill("hey"));
22 votes
Pour info... lorsque vous remplissez un tableau avec d'autres tableaux en utilisant
var arr2D = new Array(5).fill(new Array(3));
chaque élément de Array(5) pointera vers le même Array(3). Il est donc préférable d'utiliser une boucle for pour remplir dynamiquement les sous-réseaux.91 votes
a = Array(5).fill(0).map(x => Array(10).fill(0))
0 votes
@JoshStribling Pouvez-vous s'il vous plaît m'expliquer pourquoi il est que
var arr2D = new Array(5).fill(new Array(3));
ne crée pas correctement un tableau 2d ?0 votes
@MarksCode Cela créera techniquement un tableau 2D, mais ce sera un tableau rempli de références au même tableau unique que vous créez avec la fonction
new Array(3)
puisqu'il est exécuté pour créer un nouveau tableau, puis ce tableau est passé dans la fonction pour remplir celui que vous remplissez...5 votes
En d'autres termes,
fill
n'appelle pasnew Array(3)
pour chaque indice du tableau à remplir, puisqu'il ne s'agit pas d'une expression lambda ou autre, comme le commentaire de Longfei Wu ci-dessus, qui remplit initialement le tableau avec des 0, puis utilise la fonction map avec un lambda pour remplir chaque élément avec un nouveau tableau. La fonction fill remplit simplement le tableau avec exactement ce que vous lui demandez. Est-ce que cela a du sens ? Pour plus d'informations sur la fonctionmap
fonction, voir : developer.mozilla.org/fr/US/docs/Web/JavaScript/Référence/0 votes
Duplicata possible de Tableau multidimensionnel JavaScript
0 votes
@Adam cette question semble avoir deux ans de plus que la question que vous avez liée.
2 votes
@kalehmann c'est bien : meta.stackoverflow.com/a/252017/2311074
If the new question is a better question or has better answers, then vote to close the old one as a duplicate of the new one.
1 votes
Un modèle performant est
let AA = Array.from({ length: 2 }, () => new Array(3).fill(0));