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

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥我輸出的是NaN

<script type="text/javascript">

? ?var mydate=new Date;

? ?var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

? ?document.write(mydate.getFullYear()+"年"+(mydate.getMonth()+1)+"月"+mydate.getDate()+"日"+weekday[mydate.getDay()]+"<br />");

? //通過javascript的日期對象來得到當前的日期,并輸出。

??

? //成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦

? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

? var score=scoreStr.split(':');//分割字符

? ?document.write("1."+score+"<br />");

? var sum = 0;

? var average= 0;

? for( var i =0;i<score.length;i++ ){

? ? var index = score[i].indexOf(':');? //返回":"字符串出現的位置

? ? document.write(index+"<br />");

? ??

sum=sum+parseInt(score[i].substr(0,2));??

? ?}//sum+=i相當于sum=sum+i,即表示首先先計算sum和i的和,再將其和賦予給sum。

? ? ? ?document.write(sum+"<br />");

? ?average = Math.floor(sum/score.length);

? ? ? ?document.write("--班級平均分為:"+average);




? //從數組中將成績撮出來,然后求和取整,并輸出。

??


正在回答

2 回答

第一:var score=scoreStr.split(':');//分割字符 你兩次都是。以:分割的,第一個直接改為 ; 也許是你打錯了。

第二: 第一步非分割符以“;”執行的話 后面修改你的求和?

sum=sum+parseInt(score[i].substr(3)); ?//?sum=sum+parseInt(score[i].substr(0,2));【你原先獲取的是底標0,2】,若你沒修改第一步,你會發現你輸出的內容中 第一個是小明,數據類型已經錯誤了。

整體就按照2步修改,就ok了。

你這列子:沒注意細節,多多用document.write()以及console.log()輸出測試報錯數據,這樣你基本不會出什么問題了

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

在?document.write("1."+score+"<br />");這一行,可以發現你的score內的內容是這樣的:

[小明, 87;小花, 81;小紅, 97;小天, 76;小張, 74;小小, 94;小西, 90;小伍, 76;小迪, 64;小曼, 76]

可以看到,在第一個元素“小明”里面,是沒有成績的。

因此,你后面想取parseInt(score[i].substr(0,2))的時候,當i=0,也就是“小明”這個元素的時候,他的substr(0,2)是漢字而不是數字。數字加漢字,結局當然就悲催了。

改的方法很簡單,把?for( var i =0;i<score.length;i++ ) 改成??for( var i =1;i<score.length;i++ ) 即可。


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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468830    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

為啥我輸出的是NaN

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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