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

关于for循环中的问题

var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var sourceArr=scoreStr.split(";");
var sum = 0;
for(var i=0;i<sourceArr.length;i ++)
{sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1))}
document.write(sum);

上述代码,会显示总成绩815,但是在for(var i=0;i<=sourceArr.length;i ++)中多加了一个“=”后,总成绩就看不到了,不应该是少算一个成绩吗,怎么会无法显示?

正在回答

4 回答

不是少算一个成绩,而是多了一个,但是获取不到值,所以空白。如果你想少算最后一个成绩的话,可以这样写

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


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

森威 提问者

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

数组下标从0开始,使用循环的话,i的值是要小于数组长度sourceArr.length的,加个=就越界了

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

楼上正解,加“=”不是少算了一个成绩,是多算了一个,数组是从0开始 ,到sourceArr[sourceArr.length-1],你数组越界了。

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

多加=号数组会越界,数组越界是一个错误,注意这里是错误,在其他语言中(java OC)会造成程序的崩溃。

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

举报

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

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

进入课程

关于for循环中的问题

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