如果我有一个大的多维数组(矩阵),如何重新排列元素,以便我将“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
}
}
答案 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];
}
}
我在记事本中编写了代码,因此它可能不是正确的语法,但逻辑应该是正确的。