2013-05-11 106 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; 
}