一道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求余了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM