1.做了个小小练习,对矩阵进行转置和对不规则的二维数组进行行列互换(不规则二维数组不存在有转置矩阵一说)。用以加深对二维数组的理解。
2.效果图如下:
3.两种方式的代码分别如下:
3.1规则矩阵转置:
1 //规则转置
2 var array2=[[1,2,3],[4,5,6]];
3 var array22=new Array();
4 array22[0]=new Array(2);
5 array22[1]=new Array(2);
6 array22[2]=new Array(2);
7 //进行转置动作
8 for(var i=0;i<array2.length;i++)
9 {
10 for(var j=0;j<array2[i].length;j++)
11 {
12 array22[j][i]=array2[i][j];
13 }
14 }
15 for (var i=0;i<array2.length ;i++ )
16 {
17 for (var j=0;j<array2[i].length ;j++ )
18 {
19 document.writeln(array2[i][j]+" ");
20 }
21 document.writeln("<br/>");
22 }
23 document.writeln("<br/><br/>转置后的数据:<br/>");
24 for (var i=0;i<array22.length ;i++ )
25 {
26 for (var j=0;j<array22[i].length ;j++ )
27 {
28 document.writeln(array22[i][j]+" ");
29 }
30 document.writeln("<br/>");
31 }
3.2 不规则二维数组转置
1 var array2=[[1,2,3],[4,5,6],[7,8,9],[10,11]];
2 var array22=new Array();
3 var maxRows=array2[0].length;
4 var cols=new Array();
5 //创建那个转置的数组
6 for(var i=0;i<array2.length;i++)
7 {
8 //获取每行的列数
9 cols[i]=array2[i].length;
10 if(maxRows<cols[i])
11 {
12 maxRows=cols[i];
13 }
14 }
15 for(var i=0;i<maxRows;i++)
16 {
17 array22[i]=new Array();
18 }
19
20 for(var i=0;i<array2.length;i++)
21 {
22 for(var j=0;j<array2[i].length;j++)
23 {
24 array22[j][i]=array2[i][j];
25 }
26 }
27
28 document.writeln("<br/><br/>转置前的数据:<br/>");
29 for (var i=0;i<array2.length ;i++ )
30 {
31 for (var j=0;j<array2[i].length ;j++ )
32 {
33 document.writeln(array2[i][j]+"    ");
34 }
35 document.writeln("<br/>");
36 }
37 document.writeln("<br/><br/>转置后的数据:<br/>");
38 for (var i=0;i<array22.length ;i++ )
39 {
40 for (var j=0;j<array22[i].length ;j++ )
41 {
42 document.writeln(array22[i][j]+"    ");
43 }
44 document.writeln("<br/>");
45 }
javascript学习4-练习之1转置矩阵,布布扣,bubuko.com
时间: 2024-11-08 19:01:51