2013-05-11 2 views
0

저는 자바 스크립트에서 약간의 함수를 가지고 있는데 배열 A를 2 차원 배열로 나누고 싶습니다. 저는 정사각형 행렬에 사용될 것입니다. 분명히, 2x2의 정방 행렬이 입력에 있고 3x3에 대해서도 그렇다면 2x2가 되길 원합니다.하지만 ... 첫 행을 읽은 후에 붙어 있습니다. 그래서 제 arr 행이 반복됩니다. 누구든지 다음 행을 올바르게 읽을 수있는 방법에 대한 아이디어가 있습니다. 예를 들어, 배열 A = [2,1,4,5,1,2,3, 1,9]. 그런 다음 arr = [[2,1,4], [5,1,2], [3,1,9]]와 같이 배열 배열을 표시합니다. 행렬의 행렬식을 계산합니다.Javascript는 2 차원 배열을 만듭니다.

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; 

편집 :

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; 
} 
다음은 DOM 조작없이 완성 기능 (즉, A는 정수의 간단한 배열이가)입니다