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 }
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0cDMygzM1YDNx0CM2kDNxETMxIjNwITM2EDMy0iN2UDMzATMvwlMxYTMwIzLcZjN1AzMwEzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
二維數組列之和
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