zoukankan      html  css  js  c++  java
  • 一道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求余了。

  • 相关阅读:
    mybatis-databaseIdProvider多数据库支持
    mysql-高性能索引策略
    mysql-冗余和重复索引
    mybatis-枚举类型的typeHandler&自定义枚举类型typeHandler
    mybatis-自定义typeHandler
    mysql-覆盖索引
    单例模式
    mybatis实战教程一:开发环境搭建
    MySQL分页查询优化
    深入组件
  • 原文地址:https://www.cnblogs.com/dirkhe/p/6139190.html
Copyright © 2011-2022 走看看