为了账号安全,请及时绑定邮箱和手机立即绑定

求大神的指点!!!

 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>");


  //从数组中将成绩撮出来,然后求和取整,并输出。

  

为什么这段程序执行不出来?

正在回答

3 回答

http://img1.sycdn.imooc.com//591bb4f10001bb2708620571.jpg首先 数组是从 0开始的  a[0]是第一个数据  a【9】是最后一个数据  循环10次 你这里虽然循环了10次 但是是从a【1】开始的  而且最后结束的是a【10】 这个数据并不存在 所以会导致程序出错  ;   其次是sum应该   加的是index  这个变量http://img1.sycdn.imooc.com//591bb5b70001e62109410526.jpg

0 回复 有任何疑惑可以回复我~
#1

oOo焱炎之火oOo燚_0

还有一个问题就是 把班级总分数改成 平均分 而且要在 平均分前加个四舍五入函数 或者向上向下取整的方法
2017-05-17 回复 有任何疑惑可以回复我~
#2

慕田峪0611318 提问者

非常感谢!
2017-05-17 回复 有任何疑惑可以回复我~
#3

慕田峪0611318 提问者 回复 慕田峪0611318 提问者

那i<=a.length这里为什么不需要这个等号?
2017-05-17 回复 有任何疑惑可以回复我~

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>");

0 回复 有任何疑惑可以回复我~

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>");


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       467177    人
  • 解答问题       21875    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

求大神的指点!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信