課程
/前端開發
/JavaScript
/JavaScript進階篇
有沒有考滿分的情況 也就是三位數的時候??
2016-01-19
源自:JavaScript進階篇 7-23
正在回答
跟多少位數沒關系,你像這樣分隔
var?scoreStr?=?"小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; var?scoreA?=?scoreStr.split(';'); var?sum?=?0; for(var?i?=?scoreA.length;?i--;){ sum?+=?Number(scoreA[i].split(':')[1]); } console.log(sum);
xiaohuohuo 提問者
呃....受教了,謝~現在的語法應該使用..>
想了下。用sub提取不如用split二次分割“:”。取第二個字符串轉化成整數來寫。
不論是.substr()h還是.substring()都可以從第三位開始提取成績,后面的范圍可以不填,默認到底。
使用提取出來的不論是2位數還是3位數。全部加起來除以.length數組長度。然后.floor()向下取整。得到平均值
我覺得分數三位數沒什么。怕名字超過2位數啊。代碼還需要相應調整。
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";? var myarr = scoreStr.split(";"); ? document.write(myarr[0]+"<br/>");//驗證是否分割正確? var sum=0,avg=0;???????????????????????????? //初始化變量
? // 第一版本:不夠靈活的方法,遇到分數為3位數的情況下會計算錯誤
? /*for(var i=0;i<myarr.length;i++)? {????? sum=sum+ parseInt(myarr[i][3])*10 + parseInt(myarr[i][4]);?? ?? avg=Math.round(sum/myarr.length);? }*/
? //第二版本,不管分數有幾位都可以計算,不會出錯?? for(var i=0;i<myarr.length;i++)? { ??? sum=sum+ parseInt(myarr[i].substring(myarr[0].indexOf(":")+1)+"<br>");?? ?avg=Math.round(sum/myarr.length);?? }?? document.writeln(sum+"<br/>")?? document.writeln(avg+"<br/>")
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
4 回答函數定義的時候有參數,調用的時候沒有傳參數,會是什么情況?
1 回答什么時候會有這種情況?
2 回答用的floor函數卻有10的情況
5 回答為什么有的時候是從0開始數,有的時候又不是?
1 回答怎么不加下面類似的代碼 時分秒為個位數的時候 前面還是有個0?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-01-19
跟多少位數沒關系,你像這樣分隔
2022-03-25
呃....受教了,謝~現在的語法應該使用..>
2016-01-28
想了下。用sub提取不如用split二次分割“:”。取第二個字符串轉化成整數來寫。
2016-01-28
不論是.substr()h還是.substring()都可以從第三位開始提取成績,后面的范圍可以不填,默認到底。
使用提取出來的不論是2位數還是3位數。全部加起來除以.length數組長度。然后.floor()向下取整。得到平均值
我覺得分數三位數沒什么。怕名字超過2位數啊。代碼還需要相應調整。
2016-01-21
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? var myarr = scoreStr.split(";");
? document.write(myarr[0]+"<br/>");//驗證是否分割正確
? var sum=0,avg=0;???????????????????????????? //初始化變量
? // 第一版本:不夠靈活的方法,遇到分數為3位數的情況下會計算錯誤
? /*for(var i=0;i<myarr.length;i++)? {
????? sum=sum+ parseInt(myarr[i][3])*10 + parseInt(myarr[i][4]);
?? ?? avg=Math.round(sum/myarr.length);
? }*/
? //第二版本,不管分數有幾位都可以計算,不會出錯
?? for(var i=0;i<myarr.length;i++)
? {
??? sum=sum+ parseInt(myarr[i].substring(myarr[0].indexOf(":")+1)+"<br>");
?? ?avg=Math.round(sum/myarr.length);
?? }
?? document.writeln(sum+"<br/>")
?? document.writeln(avg+"<br/>")