關(guān)于for循環(huán)中的問題
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);
上述代碼,會(huì)顯示總成績815,但是在for(var i=0;i<=sourceArr.length;i ++)中多加了一個(gè)“=”后,總成績就看不到了,不應(yīng)該是少算一個(gè)成績嗎,怎么會(huì)無法顯示?
2016-07-05
不是少算一個(gè)成績,而是多了一個(gè),但是獲取不到值,所以空白。如果你想少算最后一個(gè)成績的話,可以這樣寫
2016-07-05
數(shù)組下標(biāo)從0開始,使用循環(huán)的話,i的值是要小于數(shù)組長度sourceArr.length的,加個(gè)=就越界了
2016-07-05
樓上正解,加“=”不是少算了一個(gè)成績,是多算了一個(gè),數(shù)組是從0開始 ,到sourceArr[sourceArr.length-1],你數(shù)組越界了。
2016-07-05
多加=號(hào)數(shù)組會(huì)越界,數(shù)組越界是一個(gè)錯(cuò)誤,注意這里是錯(cuò)誤,在其他語言中(java OC)會(huì)造成程序的崩潰。