天天看點

一道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 }      

  

一道JavaScript的二維數組求平均數的題

   二維數組列之和

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  }      
一道JavaScript的二維數組求平均數的題
可能有人對這句話有疑問: 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

繼續閱讀