Entrée en double array dupliquée [Résolu/Fermé]

Signaler
Messages postés
61
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
2 mars 2016
-
Messages postés
61
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
2 mars 2016
-
Bonjour, j'essaye de réaliser un tableau grille à double entrée de 320 par 320 qui ne contient que des 0.


var grille = [];
var X = [];
for(var j = 0; j < 320; j++)
{
X.push(0);
}
for(var i = 0; i < 320; i++)
{
grille.push(X);
}

grille[1][2] = 1;
console.log(grille);


Avec l'avant dernière instruction, je souhaite ajouter un 1 à la place d'une cellule, cependant, il n'y a pas que l'array 1 qui est modifié à la case 2, mais tous les arrays.

[[0, 0, 1, 317 more...], [0, 0, 1, 317 more...], [0, 0, 1, 317 more...], [0, 0, 1, 317 more...], [0, 0, 1, 317 more...], [0, 0, 1, 317 more...], 314 more...]


Est-ce que vous avez une idée du pourquoi du comment ?

1 réponse

Messages postés
32426
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mai 2021
3 479
Bonjour

Essayes ceci :
var grille =new Array(320);
for(var i=0;i<320;i++){
   grille[i] = new Array(320);
}
for(var i=0;i<320;i++){
 for(var j=0;j<320;j++){
  grille[i][j]=0;
 }

}
grille[1][2]=1;
console.log(grille);

2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
61
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
2 mars 2016
6
Merci beaucoup, ça fonctionne. Par contre, est-ce que les tableaux auront une taille statique ? Et sais tu pourquoi avec le push() ça ne fonctionnait pas ? Dans la console, l'array grille à la même apparence.