所以在我的javascript中我有一个巨大的一维数组,我想把它转换成二维数组。这是我到目前为止所做的,但似乎没有用。
var arrLines = strRawContents.split(",");
var array2;
for (int i = 0; i < 98; i++) {
for (int j = 0; j < 5; j++) {
array2[i][j] = arrLines[(j * 98) + i];
}
}
return arrLines
}
这就是我目前所拥有的,我试图制作98行,每行有5列。我的目标很复杂。如果我的1D阵列是[1,2,3,4,5,6,7,8,9,10等],那么[0] [0]处的我的2D数组应该是1,在[0] [1]应为2,依此类推,直到[0] [7]为8,然后[1] [0]为9,[1] [1]为10,依此类推。
答案 0 :(得分:1)
在每个外部循环中,创建一个数组。在内部循环中,将内容推入其中,在外部循环的末尾,将新创建的数组推送到最终的2-d数组中。
var arrLines = strRawContents.split(",");
var array2 = [];
for (var i = 0; i < 98; i++) {
var arr = [];
for (var j = 0; j < 5; j++) {
arr.push(arrLines[(i * 5) + j]);
}
array2.push(arr);
}
return arr2;
原始代码中的一些错误:
array2
初始化为空数组。int
个关键字。使用var
或let
(let
是首选,但并非所有浏览器都支持它。(i * 5) + j
而不是(j * 98) + i
。array2
。