Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用嵌套数组计数_Javascript_Arrays_For Loop_Nested_Grid - Fatal编程技术网

Javascript 使用嵌套数组计数

Javascript 使用嵌套数组计数,javascript,arrays,for-loop,nested,grid,Javascript,Arrays,For Loop,Nested,Grid,我正在尝试统计嵌套数组中数组的索引1值。我期望的输出是: [ [ [ 0, 0 ], [ 0, 1], [ 0, 2 ] ] ] 但是,我将以下内容作为我的输出: [ [ [ 0, 2 ], [ 0, 2 ], [ 0, 2 ] ] ] 以下是我正在运行的代码,我假设问题属于第二个for循环: let width = 3 let height = 1 var grid = []; let y = 0 for(var i=0; i<height; i++) { grid[i]

我正在尝试统计嵌套数组中数组的索引1值。我期望的输出是:

[ [ [ 0, 0 ], [ 0, 1], [ 0, 2 ] ] ]
但是,我将以下内容作为我的输出:

[ [ [ 0, 2 ], [ 0, 2 ], [ 0, 2 ] ] ]
以下是我正在运行的代码,我假设问题属于第二个for循环:

let width = 3
let height = 1
var grid = [];
let y = 0

for(var i=0; i<height; i++) {
    grid[i] = new Array(width).fill([0,0])
}
let currentRow = grid[0]

for (let j = 0; j<grid[0].length; j++){
  currentRow[j][1] = j
}
let width=3
让高度=1
var网格=[];
设y=0
对于(var i=0;i将代码更改为

    let width = 3;
    let height = 1;
    var grid = [];
    let y = 0;
    for (var i = 0; i < height; i++) {
      grid[i] = new Array(width);
      for (let j = 0; j < grid[i].length; j++) {
        grid[i][j] = [0, 0];
      }
    }
    let currentRow = grid[0];
    
    for (let j = 0; j < grid[0].length; j++) {
      currentRow[j][1] = j;
    }
let width=3;
设高度=1;
var网格=[];
设y=0;
对于(变量i=0;i

当您使用
grid[i]=new Array(width).fill([0,0])
时,您正在
grid[i]
数组中保存一个
[0,0]
实例,这意味着
currentRow[0]==currentRow[1]
true
,因此当您更改
currentRow[j][1]
所有
currentRow
元素都被更改,在第二个循环的最后一步中,您更改了
currentRow[2][1]=2
,因此所有
currentRow
元素都以这种方式更改。

有什么替代方法可以让它计数?