提前感谢您抽出宝贵时间帮助我解决这个问题。
我正在尝试使用 for 循环生成一个像这样的简单板。
var board = [[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]];
然而,我下面的尝试并没有成功。
function makeBoard(n){
var board=[];
for(var i=0; i<n; i++){
for(var j=0; j<n; j++){
board[i][j]=0;
}
}
return board;
}
从技术上讲,我可以只使用上面显示的 board 变量并继续,但我更关心原理。不能使用 for 循环创建多维数组吗?有没有使用 array.push() 来完成此操作的简单方法?
最佳答案
JavaScript 没有多维数组,所以你必须使用数组的数组来代替:
function makeBoard(n){
var board=[];
for(var i=0; i<n; i++){
board[i] = [];
for(var j=0; j<n; j++){
board[i][j]=0;
}
}
return board;
}
您缺少为第二个维度创建每个数组所需的 board[i] = [];
。
注意:您也可以使用 Array.prototype.fill :
function makeBoard(n){
var board=[];
for(var i=0; i<n; i++){
board[i] = Array(n).fill( 0 );
}
return board;
}
关于javascript - For循环生成多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36485326/