问答详情
源自:7-23 编程练习

关于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 ++)中多加了一个“=”后,总成绩就看不到了,不应该是少算一个成绩吗,怎么会无法显示?

提问者:森威 2016-07-05 09:22

个回答

  • 繁青
    2016-07-05 09:46:38
    已采纳

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

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


  • 一个老王
    2016-07-05 11:10:45

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

  • qq_为爱逆战_0
    2016-07-05 09:47:59

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

  • Limxing
    2016-07-05 09:44:17

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