JS里,在字符串內(nèi)提取數(shù)字并求和
? var source = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? var source2 = source.split(";");
? for (var i = 0; i < source2.length; i++) {
? ? ? var score=new Array();
? ? ? score[i]=parseInt(source2[i].substr(source2[i].indexOf(":")+1));//source2[i].indexOf(":")表示從:出現(xiàn)的位置,而+1則是把:下一個開始提取
? ? ? document.write(score[i]+",");
? ? ? var sum;
? ? ? sum +=score[i];
? ?}
? ?document.write(sum);
為啥每運行一次,sum的值就會加上815(815才是本來要求的sum值)
2017-02-18
你說的我倒是沒理解什么意思,每次加上815?你的代碼有問題的,最后得到的是個
因為你是sum+=i;的形式,應(yīng)該知道聲明變量要賦初值0的,你可以寫個輸出代碼,測試下未賦值的情況下sum的值,這里可以給你說下是undefined的,這樣的運算結(jié)束得到的是是個啥東西,我們也不知道了,計算機輸出也是NaN
解決辦法:
for循環(huán)外部聲明定義變量var sum = 0;
2017-02-15