Javascript中的1D数组到2D数组

时间:2017-06-03 02:47:41

标签: javascript arrays

所以在我的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,依此类推。

1 个答案:

答案 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;

原始代码中的一些错误:

  1. 您需要将array2初始化为空数组。
  2. JavaScript中没有int个关键字。使用varletlet是首选,但并非所有浏览器都支持它。
  3. 公式应为(i * 5) + j而不是(j * 98) + i
  4. 返回值应为array2