求大神的指点!!!

来源:7-23 编程练习

慕田峪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>");


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

  

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

写回答 关注

3回答

  • oOo焱炎之火oOo燚_0
    2017-05-17 10:30:30
    已采纳

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

    慕田峪061... 回复慕田峪061...

    那i<=a.length这里为什么不需要这个等号?

    2017-05-17 18:05:01

    共 3 条回复 >

  • 慕粉1148449514
    2017-05-17 10:37:11

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

  • 我学C语言
    2017-05-17 10:04:30

    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进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题