1

I have an Array in a class, when I try to change values in JavaScript i get weird results. Here are some weird things from my console:

grid.grid
(10) [Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8)]
0: (8) [0, 0, 0, 0, 0, 0, 0, 0]
1: (8) [0, 0, 0, 0, 0, 0, 0, 0]
2: (8) [0, 0, 0, 0, 0, 0, 0, 0]
3: (8) [0, 0, 0, 0, 0, 0, 0, 0]
4: (8) [0, 0, 0, 0, 0, 0, 0, 0]
5: (8) [0, 0, 0, 0, 0, 0, 0, 0]
6: (8) [0, 0, 0, 0, 0, 0, 0, 0]
7: (8) [0, 0, 0, 0, 0, 0, 0, 0]
8: (8) [0, 0, 0, 0, 0, 0, 0, 0]
9: (8) [0, 0, 0, 0, 0, 0, 0, 0]
grid.grid[4][4] = 1;
grid.grid
(10) [Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8), Array(8)]
0: (8) [0, 0, 0, 0, 1, 0, 0, 0]
1: (8) [0, 0, 0, 0, 1, 0, 0, 0]
2: (8) [0, 0, 0, 0, 1, 0, 0, 0]
3: (8) [0, 0, 0, 0, 1, 0, 0, 0]
4: (8) [0, 0, 0, 0, 1, 0, 0, 0]
5: (8) [0, 0, 0, 0, 1, 0, 0, 0]
6: (8) [0, 0, 0, 0, 1, 0, 0, 0]
7: (8) [0, 0, 0, 0, 1, 0, 0, 0]
8: (8) [0, 0, 0, 0, 1, 0, 0, 0]
9: (8) [0, 0, 0, 0, 1, 0, 0, 0]

Why is this happening and how can I prevent it?

This is how I created the Array:

createGrid() {
 let grid = [];
 let subgrid = [];
 for(let i=0; i<this.cols; i++) {
   subgrid.push(0);
 }
 for(let i=0; i<this.rows; i++) {
   grid.push(subgrid);
 }
 return grid;
}
RABIGA7OR
  • 23
  • 7

0 Answers0