Push d'un array au sein d'un autre array
Résolu
BlueGone
Messages postés
65
Statut
Membre
-
BlueGone Messages postés 65 Statut Membre -
BlueGone Messages postés 65 Statut Membre -
Bonjour,
Dans mon code, j'ai un array grille de taille 320*320 rempli aléatoirement de 0 et de 1. J'essaye de push grille au sein d'un autre array vide déclaré par
Savez vous à quoi est dû ce lien symbolique ? Existe-t-il un moyen de push uniquement les valeurs de grille et non pas son adresse ?
Dans mon code, j'ai un array grille de taille 320*320 rempli aléatoirement de 0 et de 1. J'essaye de push grille au sein d'un autre array vide déclaré par
var game = []Cependant, il semblerait qu'il y aille comme un lien symbolique entre grille et game, car lorsque je modifie game par la suite, grille l'est aussi.
function animate()
{
game.push(grille);
console.log(grille);
console.log(game[0]); // Affiche grille, contenu dans un autre array
// Reset de la grille //////////////////////////////////////////////////////
for(var i = 0; i < 320; i++)
{
for(var j = 0; j < 320; j++)
{
grille[i][j]=0;
}
}
console.log(game[0]); // Affiche la grille vide, dans un autre array
}
Savez vous à quoi est dû ce lien symbolique ? Existe-t-il un moyen de push uniquement les valeurs de grille et non pas son adresse ?
1 réponse
Bonsoir
Oui c'est normal, le tableau est ajouté "par référence".
Il faut d'abord le dupliquer.
Soit tu le fait à la main, en créant un tableau temporaire, une boucle for pour remplir ce tableau temporaire avec les valeurs que tu veux dupliquer.
Soit tu utilise plus rapidement :
Oui c'est normal, le tableau est ajouté "par référence".
Il faut d'abord le dupliquer.
Soit tu le fait à la main, en créant un tableau temporaire, une boucle for pour remplir ce tableau temporaire avec les valeurs que tu veux dupliquer.
Soit tu utilise plus rapidement :
var tableauDuplique = grille.slice(); game.push(tableauDuplique );
Si tu ré exécute une seconde fois la fonction "animate", le tableau sera de nouveau initialisé à une nouvelle adresse mémoire et non pas par dessus la précédente.
Ce serait effectivement le cas si tu avait fait le "var tableauDuplique" en dehors de la fonction "animate", de manière globale quoi