Entrée en double array dupliquée

Résolu/Fermé
BlueGone Messages postés 61 Date d'inscription dimanche 3 novembre 2013 Statut Membre Dernière intervention 2 mars 2016 - 29 févr. 2016 à 13:06
BlueGone Messages postés 61 Date d'inscription dimanche 3 novembre 2013 Statut Membre Dernière intervention 2 mars 2016 - 29 févr. 2016 à 17:55
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 ?
A voir également:

1 réponse

jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
29 févr. 2016 à 14:07
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
BlueGone Messages postés 61 Date d'inscription dimanche 3 novembre 2013 Statut Membre Dernière intervention 2 mars 2016 6
29 févr. 2016 à 17:55
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.
0