var arr = [[0,2,6],[1,1,7,9],[2,9,0],[3,3,3]];
也就是:
0,2,6
1,1,7,9
2,9,0
3,3,3
列转为行,行转为列:
0,1,2,3
2,1,9,3
6,7,0,3
,9, ,
发现转置后的列数为转置前二维数组的子数组最大length,如何获取这个length呢?
粗想方法是遍历数组获取每一个子数组,然后再依次比较子数组length,如下:
var maxLength = 0;
for(var a = 0; a < arr.length; a++ ){
if(arr[a].length > maxLength){
maxLength = arr[a].length;
}
}
得到转置后的列数,下面就有思路了,因为转置后的第一行就是转置前二维数组的子数组脚标为[0]的数,第二行为[1]的数,通过这个规律,转换成我们的代码,如下
var transferArr = [];
function transfer() {
//