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

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

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

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

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

正在回答

3 回答

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

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

Arthraxon

赞同,如果名字换成“小小明”就出BUG了。
2016-07-06 回复 有任何疑惑可以回复我~
#2

Willsf 提问者

非常感谢!
2016-07-07 回复 有任何疑惑可以回复我~

//要考虑姓名的长度和分数位数的不确定性,不一定都是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);


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

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

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

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

举报

0/150
提交
取消

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

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