Entrée en double array dupliquée

Résolu
BlueGone Messages postés 65 Statut Membre -  
BlueGone Messages postés 65 Statut Membre -
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

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
    1. BlueGone Messages postés 65 Statut Membre 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.
      0