一道JavaScript的二维数组求平均数的题

    JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组。今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下,共同交流交流。

    参差不齐的数组行之和

 1  var grades=[[1],[1,2],[1,2,3]];
 2  var num=0;
 3  var sum=0;
 4  var i=0;
 5  var j=0;
 6  for(i=0;i<grades.length;i++){ //多少行
 7   for(j=0;j<grades[i].length;j+) {//多少列   
 8       sum+=a[i][j];  
 9     }
10    num=sum/grades[i].length    
11    console.log("第"+parseInt(i+1)+"行"+"  平均值:"+num.toFixed(2));
12 num=0;
13 sum=0;  
14 }

  

   二维数组列之和

 1   var grades=[[1,2,3,4],[1,2,3,4],[1,2,3,4]];
 2   var num=0;
 3   var sum=0;
 4  var i=0;
 5   var j=0;
 6   for(j=0;j<grades[i%grades.length].length;i++){  
 7    for(i=0;i<grades.length;i++) {  
 8        sum+=a[i][j];  
 9      }
10     num=sum/grades.length    
11     console.log("第"+parseInt(j+1)+"列"+"  平均值:"+num.toFixed(2));
12  num=0;
13  sum=0;  
14  }



可能有人对这句话有疑问: j<grades[i%grades.length].length
当我们写程序时,j的第一感觉取值范围应为0-grades[i].length,但是实际上并不能,因为如果对列求和,那先把数组里面的(grades[i][j])的j置0,然后是i++。
j < grades[i%grades.length].length,因为在第二个for语句中i只有为0 1 2 才进去,i=3时,已经跳到第一个for循环,所以如果写
j<grades[i].length(第i行的长度) 这时的i会有3这个值,但是我没得行的索引最多是2,并不是3,这样就会产生越界问题,我们想要让i取0 1 2 ,所以就有对3求余,如果我们加更多的行怎么办呢,这时候就明白为什么对grades.length求余了。

 

转载于:https://www.cnblogs.com/dirkhe/p/6139190.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值