for循环中sum赋值为什么不直接写成sum += parseInt(sourceArr[i].substr(3));

来源:7-23 编程练习

Willsf

2016-07-06 19:59

sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1));

可以替换成sum += parseInt(sourceArr[i].substr(3));  结果是正常呢

这样有什么不好的地方吗?

写回答 关注

3回答

  • jonasyu
    2016-07-06 20:17:42
    已采纳

    我觉得在确保名字长度一定为2的情况下,是可以这样的。标记为黑的答案对于这道题来说是对的,但是换成名字长度小于或者大于2的情况下,则会出错。健壮性没有前面的好。自己看法,欢迎讨论。

    Willsf

    非常感谢!

    2016-07-07 10:07:06

    共 2 条回复 >

  • 136542849
    2016-07-08 12:00:19

    //要考虑姓名的长度和分数位数的不确定性,不一定都是2个字符,所以应该这样写可以的

      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

    var splScore=scoreStr.split(";");

    var total=0;

    for(var i=0;i<splScore.length;i++){

        var p=0;

        p=parseInt(splScore[i].split(":")[1]);

        total+=p;

    }

    document.write(total);


  • Willsf
    2016-07-06 20:05:25

    var present=new Date()
    var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
    document.write(present.getFullYear()+"年"+(present.getMonth()+1)+"月"+present.getDate()+"日"+weekday[present.getDay()]+"<br/>");
    var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
    document.write(scoreStr.split(";")      + "<br />");
    var sourceArr = scoreStr.split(";");
    var sum=0;

    for(var i=0;i<sourceArr.length;i++){

    /*sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1));*/  

    sum += parseInt(sourceArr[i].substr(3));   
    }
    document.write("平均成绩:"+Math.round(sum/(sourceArr.length))+"<br/>");

    标记为黑的这样写可以吗?结果是对的

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题