亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么定義變量sum=0,在sum+=的條件下 輸出sum還等于0

為什么定義變量sum=0,在sum+=的條件下 輸出sum還等于0

慕粉3361053 2016-08-04 21:42:47
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";?var scoreStr1=scoreStr.split(";");???var sum=0;?var scoreStr1=new Array();??for(var i=0;i<scoreStr1.length;i++){sum+= parseInt(scoreStr1[i].substr(scoreStr1[i].indexOf(":")+1));}? //從數組中將成績撮出來,然后求和取整,并輸出。? document.write("總分是:"+sum);
查看完整描述

3 回答

已采納
?
snowmanJS

TA貢獻89條經驗 獲得超53個贊

將?var scoreStr1=new Array(); 去掉,因為var scoreStr1=scoreStr.split(";");執行后scoreStr1已經是數組了,在用var scoreStr1=new Array();就相當于將scoreStr1初始化為一個新空數組。

查看完整回答
反對 回復 2016-08-05
?
luofuxiang

TA貢獻34條經驗 獲得超34個贊

var scoreStr1=scoreStr.split(";")這句在聲明scoreStr1的同時已經將其實例化了,如果再用new Array()將其實例化,scoreStr1將指向一個空的Array對象,所以輸出的結果是0。樓主的代碼中只需要將var scoreStr1=new Array()這句注釋掉就可以得到期望的結果了。

var?scoreStr?=?"小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
?var?scoreStr1=scoreStr.split(";");
?
?
?var?sum=0;
?//var?scoreStr1=new?Array();<==注釋掉這句
?
?for(var?i=0;i<scoreStr1.length;i++){
sum+=?parseInt(scoreStr1[i].substr(scoreStr1[i].indexOf(":")+1));
}
??//從數組中將成績撮出來,然后求和取整,并輸出。
??document.write("總分是:"+sum);


查看完整回答
1 反對 回復 2016-08-04
?
Lion_Leo

TA貢獻4條經驗 獲得超0個贊

在for處設一下斷點,很快就會發現問題。

查看完整回答
反對 回復 2016-08-05
  • 3 回答
  • 0 關注
  • 2215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號