通过x值转换多维数组

时间:2014-09-30 10:42:31

标签: javascript arrays

如果我有一个大的多维数组(矩阵),如何重新排列元素,以便我将“y”值作为数组中新的“x”值?

很难解释所以让我举个例子。 我想要下面的数组。

[
[[0][1][2][3]],
[[4][5][6][7]],
[[8][9][10][11]],
[[12][13][14][15]],
]

转换为下面的数组

[
[[0][4][8][12]],
[[1][5][9][13]],
[[2][6][10][14]],
[[3][7][11][15]],
]

for (var i = 0; i < tablesOfData.length; i++) {
   for (var j = 0; j < tablesOfData[i].length; j++) {
      //Transform the array
   }
}

1 个答案:

答案 0 :(得分:0)

所有行都需要具有相同的列数。

如果行数与列数相同(如示例所示),则以下内容应该有效。如果它们不相同则需要创建一个n

for (var i = 0; < i tablesOfData.length; i++) {
    for (var j = i; j < tablesOfData.length; j++) {
        var temp = tablesOfData[i][j];
        tablesOfData[i][j] = tablesOfData[j][i];
        tablesOfData[j][i] = tablesOfData[i][j];
    }
}

否则,您需要创建一个新表并将值添加到该表中,如下所示:

var newTable = new int[tablesOfData[i].length]();

for (var i = 0; < i tablesOfData.length; i++) {
    for (var j = 0; j < tablesOfData.length; j++) {
        if (i == 0)
            newTable[j] = new int[tablesOfData.length]();

        newTable[j][i] = tablesOfData[i][j];
    }
}

我在记事本中编写了代码,因此它可能不是正确的语法,但逻辑应该是正确的。