用嵌套数组计数
Counting up with nested arrays
我正在尝试计算嵌套数组中数组的索引 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;
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;
}
当你使用 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
元素都以这种方式更改。
我正在尝试计算嵌套数组中数组的索引 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;
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;
}
当你使用 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
元素都以这种方式更改。