javascript - For循环生成多维数组

标签 javascript for-loop multidimensional-array

提前感谢您抽出宝贵时间帮助我解决这个问题。

我正在尝试使用 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/

相关文章:

javascript - 关于 javascript 中的 for 循环的问题?

c++ - 遍历数组最有效的方法是什么? (c++)

javascript - 如何在 Javascript 中编写 for 循环内部变量或者是否有替代解决方案?

C++:从满足特定要求的二维数组的元素中创建一个数组

c - 执行文件 I/O 时出现意外的零

C++ 从 .txt 中读取浮点值并将它们放入一个未知大小的二维数组中

javascript - onkeyup 事件触发延迟

javascript - 如何将参数传递给服务器端书签?

javascript 对象引用不能按预期工作

javascript - 带有简单数组的基本 ng-repeat