【发布时间】:2013-06-29 23:56:42
【问题描述】:
我有一个数组数组,类似于:
[
[1,2,3],
[1,2,3],
[1,2,3],
]
我想转置得到如下数组:
[
[1,1,1],
[2,2,2],
[3,3,3],
]
使用循环以编程方式做到这一点并不难:
function transposeArray(array, arrayLength){
var newArray = [];
for(var i = 0; i < array.length; i++){
newArray.push([]);
};
for(var i = 0; i < array.length; i++){
for(var j = 0; j < arrayLength; j++){
newArray[j].push(array[i][j]);
};
};
return newArray;
}
然而,这似乎很笨重,我觉得应该有一种更简单的方法来做到这一点。有吗?
【问题讨论】:
-
你能保证这两个维度永远是一样的吗? 1x1、2x2、3x3 等。
arrayLength参数究竟用于什么?确保不超出数组中一定数量的元素? -
这个和JQuery无关,我改了标题。
-
看看这个:stackoverflow.com/questions/4492678/…。你正在做的是转置矩阵
-
是的,移调。反转将完全不同,我对此不感兴趣。现在。
-
左上角到右下角对角线没有改变,所以有优化机会。
标签: javascript arrays matrix transpose