我在javascript中有一个小功能,我想将一个数组A
拆分成一个二维数组。
我将用于方形矩阵。显然,如果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;
}
}
}
答案 0 :(得分:4)
您总是分配相同的值。它应该是这样的:
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;
}
console.log(create2Darray([1, 2, 3, 4, 5, 6, 7, 8, 9]))