慕田峪0611318
2017-05-17 09:11
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var a=scoreStr.split(";");
var sum=0;
for(var i=1;i<=a.length;i++){
var index=a[i].substring(a[i].indexOf(":")+1);
sum=sum+parseInt(a);
}
document.write("班级总分数:"+sum/a.length+"<br>");
//从数组中将成绩撮出来,然后求和取整,并输出。
为什么这段程序执行不出来?
首先 数组是从 0开始的 a[0]是第一个数据 a【9】是最后一个数据 循环10次 你这里虽然循环了10次 但是是从a【1】开始的 而且最后结束的是a【10】 这个数据并不存在 所以会导致程序出错 ; 其次是sum应该 加的是index 这个变量
var a=scoreStr.split(";");
var sum=0;
for(var i=0;i<a.length;i++){
var index=a[i].substring(a[i].indexOf(":")+1);
sum=sum+parseInt(index);
}
document.write("班级平均分:"+sum/a.length+"<br>");
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var a=scoreStr.split(";");
var sum=0;
for(var i=0;i<a.length;i++){
//你这里小于等于有问题,等于的话i=10还可以进循环,
//但数组a只有0-9,没有10,那下面的a[10]为undefined没有substring就会报错,
sum+=parseInt(a[i].substring(a[i].indexOf(":")+1));
//你这里其实已经拿到数字了,我们就直接加等就好了,你parseInt(a)这里是a是数组
}
console.log(sum);
document.write("班级总分数:"+sum+"<br>");
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题