javascript学习4-练习之1转置矩阵

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]+"&nbsp");
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]+"&nbsp");
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]+"&nbsp&nbsp&nbsp&nbsp");
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]+"&nbsp&nbsp&nbsp&nbsp");
43     }
44     document.writeln("<br/>");
45 }

 

 

转载于:https://www.cnblogs.com/luckyflower/p/3699422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值