2013-05-11 55 views
0

我已经在javascript中获得了一个小函数,我想将一个数组A分成一个2d数组。 我将用于矩形矩阵。显然,如果2x2的矩形矩阵在输入中,我希望它是2×2等等,对于3x3和...但是我在读完第一行后卡住了。所以我的arr行是重复的。任何人都有任何关于如何让下一行可以正确读取的想法。例如,可以说我有一个数组A = [2,1,4,5,1,2,3, 1,9]。然后我想让我的数组arr看起来像这样:arr = [[2,1,4],[5,1,2],[3,1,9]],稍后将用于计算矩阵的行列式。Javascript创建一个2d数组

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; 
     } 
    } 

} 
} 

回答

3

您正在分配始终相同的值。它应该是这样的:

arr[i][j] = A[i*rows+j].value; 

编辑:这里有没有DOM操作一个完整的功能(即,A是一个整数的简单数组):

function create2Darray(A) { 
    var arr = []; 
    var rows = Math.sqrt(A.length); 
    for(var i = 0;i < rows; i++) { 
     arr[i] = []; 
     for(var j = 0; j < rows;j++){ 
      arr[i][j] = A[i*rows+j]; 
     } 
    } 
    return arr; 
}