在javascript中将数组转换为二维数组(方阵)

在javascript中将数组转换为二维数组(方阵),javascript,arrays,2d,Javascript,Arrays,2d,我在javascript中有一个小函数,我想把一个数组a拆分成一个2d数组。 我将用于平方矩阵。显然,我希望它是2x2,如果一个2x2的方阵在输入中,以此类推,对于3x3和。但是我在读了第一行之后就卡住了。所以我的arr行被重复了。有没有人对如何正确读取下一行有什么想法?例如,假设我有一个数组 A = [2,1,4,5,1,2,3,1,9] 然后我希望我的数组arr如下所示: arr = [[2,1,4],[5,1,2],[3,1,9]] 这将在以后用于计算矩阵的行列式 function c

我在javascript中有一个小函数,我想把一个数组
a
拆分成一个2d数组。 我将用于平方矩阵。显然,我希望它是2x2,如果一个2x2的方阵在输入中,以此类推,对于3x3和。但是我在读了第一行之后就卡住了。所以我的arr行被重复了。有没有人对如何正确读取下一行有什么想法?例如,假设我有一个数组

A = [2,1,4,5,1,2,3,1,9]
然后我希望我的数组arr如下所示:

arr = [[2,1,4],[5,1,2],[3,1,9]]
这将在以后用于计算矩阵的行列式

function create2Darray(clname) {
  var A = document.getElementsByClassName(clname);
  var arr = new Array();
  var rows = Math.sqrt(A.length);
  for (var i = 0; i < rows; i++) {
    arr[i] = new Array();
    for (var j = 0; j < rows; j++) {
      arr[i][j] = A[j].value;
    }
  }
}
函数create2Darray(clname){
var A=document.getElementsByClassName(clname);
var arr=新数组();
var rows=Math.sqrt(A.length);
对于(变量i=0;i
您总是在分配相同的值。应该是这样的:

arr[i][j] = A[i*rows+j].value;
编辑:这是一个没有DOM操作的完整函数(即,a是一个简单的整数数组):

函数create2Darray(A){
var-arr=[];
var rows=Math.sqrt(A.length);
对于(变量i=0;ilog(create2Darray([1,2,3,4,5,6,7,8,9]))
您总是在分配相同的值。应该是这样的:

arr[i][j] = A[i*rows+j].value;
编辑:这是一个没有DOM操作的完整函数(即,a是一个简单的整数数组):

函数create2Darray(A){
var-arr=[];
var rows=Math.sqrt(A.length);
对于(变量i=0;i