二维数组转置是指将二维数组横向元素保存为纵向元素
转置前arr [ 转置后res [
['a','b','c'], ['a','d','g','j']
['d','e','f'], ['b','e','h','k']
['g','h','i'], ['c','f','i','l']
['j','k','l'] ]
]
通过观察分析,可以发现如下规律
res[0][0] = arr[0][0]
res[0][1] = arr[1][0]
res[0][2] = arr[2][0]
res[0][3] = arr[3][0]
根据这个规律,可以得出而二维数组的转置公式为res[i][j] = arr[j][i],且res数组的长度等于arr元素的长度,res元素的长度等于arr数组的长度;代码如下:
var arr =[ ['a','b','c'],['d','e','f'], ['g','h','i'],['j','k','l'] ];
var res =[]; //创建一个空数组
for(var i=0;i<arr[0].length;i++){ //外层循环3次 对应转置后的数组res的长度 res.length
res[i] = []; // 将转置后的每一个元素设置为数组
for(var j=0;j<arr.length;j++){ //内层循环4次 对应转置后数组res每个元素的长度
res[i][j] = arr[j][i]; //为二维数组赋值
}
}
console.log(res);
运行结果如下: