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
相关资源:数据结构—成绩单生成器