課程
/前端開發
/JavaScript
/JavaScript進階篇
各位大大,這道編程題小白做了很久,終于做出來了。
可是感覺思維有點混亂。還有最后一個語句不知道怎么回事報錯了。
so,小白只好來請教各位大大了。
( ╯□╰ )。。( ╯□╰ )。。麻煩各位熱心的||好心的||有信心的大大給小白看一下。
請多多指教啦!
2016-08-31
源自:JavaScript進階篇 7-23
正在回答
<!DOCTYPE ?HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全帶,準備啟航</title>
<script type="text/javascript">
? //通過javascript的日期對象來得到當前的日期,并輸出。
? var mydate=new Date();
? var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";
? var myday=mydate.getDay();
? var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];?
? //weekday[myday]實現數字和星期幾的轉換
? //成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? var newscore=scoreStr.split(";"); //分割字符串成字符串數組。
? document.write("分割后得到的字符串數組:"+"<br/>"+newscore+"<br/>");//測試代碼
? //document.write(newscore[0]+"<br/>");//測試代碼
? document.write("數組長度:"+newscore.length+"<br/>");
? function resul(){
? ? var sum = 0;
? for(var i=0;i<newscore.length;i++){
? ? ?newscore[i]=newscore[i].substring(3);//提取數組元素中的分數,重新給數組賦值
? ? //document.write(newscore[i]+"<br/>");
? ? sum=sum+parseInt(newscore[i]);//計算班級總分;parseInt(newscore[i])從數組中將成績撮出來。然后求和取
? ? return sum;
return newscore[i];
//使用parseInt()函數可解析一個字符串,并返回一個整數。
? }
?//document.write("新數組:"+newscore+"<br/>");
?var priscore=Math.round(sum/newscore.length);//計算平均分
?document.write("- -班級平均分:"+priscore+"<br/>");
? //從數組中將成績撮出來,然后求和取整,并輸出。
?document.write(time+" "+weekday[myday]);
? ?resul();//調用計算平均分函數
? // document.write(resul());//( ╯□╰ )( ╯□╰ )正確代碼
錯了。</script>
</head>
<body>
</body>
</html>
墨小漓 提問者
在各位大大的幫助下,這題小白終于弄出來了。謝謝大家。
? ? ?//使用parseInt()函數可解析一個字符串,并返回一個整數。
? ??
return priscore;//平均分
? document.write("- - - 班級平均分:"+resul());//o(^▽^)o,這回終于沒有報錯了
</script>
<!DOCTYPE??HTML> <html?> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>系好安全帶,準備啟航</title> <script?type="text/javascript"> ??//通過javascript的日期對象來得到當前的日期,并輸出。 ??var?mydate=new?Date(); ??var?time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日"; ??var?myday=mydate.getDay(); ??var?weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];? ??//weekday[myday]實現數字和星期幾的轉換 ??//成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦 ??var?scoreStr?=?"小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; ??var?newscore=scoreStr.split(";");?//分割字符串成字符串數組。 ??document.write("分割后得到的字符串數組:"+"<br/>"+newscore+"<br/>");//測試代碼 ??//document.write(newscore[0]+"<br/>");//測試代碼 ??document.write("數組長度:"+newscore.length+"<br/>"); ??function?resul(){ ????var?sum?=?0; ??for(var?i=0;i<newscore.length;i++){ ?????newscore[i]=newscore[i].substring(3);//提取數組元素中的分數,重新給數組賦值 ????//document.write(newscore[i]+"<br/>"); ????sum=sum+parseInt(newscore[i]);//計算班級總分;parseInt(newscore[i])從數組中將成績撮出來。然后求和取 ?????//使用parseInt()函數可解析一個字符串,并返回一個整數。 ??} ?//document.write("新數組:"+newscore+"<br/>"); ?var?priscore=Math.round(sum/newscore.length);//計算平均分 ?document.write("-?-班級平均分:"+priscore+"<br/>"); ??} ??//從數組中將成績撮出來,然后求和取整,并輸出。 ?document.write(time+" "+weekday[myday]); ???resul();//調用計算平均分函數 ??//?document.write(resul());//(?╯□╰?)(?╯□╰?)小白不知道為什么,這個語句報錯了。 </script> </head> <body> </body> </html>
你的resul()函數以document.write("- -班級平均分:"+priscore+"<br/>");結尾,并沒有return返回值,所以該函數完成后就是“--班級平均分:81”,然而document.write輸出內容是字符串或者是一個變量值,所以說要想用document.write去調用函數,這個函數必須是返回值或字符串的。這樣你用document.write調用沒有返回值的函數就會報錯,對于沒有返回值的函數就要直接調用,如resul();
給你看看我的思路,希望能對你有幫助:
<script?type="text/javascript"> ??Days?=?["星期一","星期二","星期三","星期四","星期五","星期六","星期日"] ??//通過javascript的日期對象來得到當前的日期,并輸出。 ??var?date?=?new?Date(); ??document.write(date.getFullYear()+"年"+date.getMonth()+"月"+date.getDate()+"日?"+Days[date.getDay()]); ??//成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦 ??var?scoreStr?=?"小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; ??var?students?=?scoreStr.split(";");?//把每個人分開放到數組里面 ??var?tot=0; ??for(var?i=0;?i<10;++i){?//取成績,剔除掉名字和冒號 ??????students[i]?=?students[i].substring(3,5); ??} ??//從數組中將成績撮出來,然后求和取整,并輸出。 ??for(var?i=0;?i<10;++i){?//算總分,成績還是字符串,所以注意把字符串轉換為整數 ??????tot?=?tot?+?parseInt(students[i]); ??} ??document.write("--班級總分為:"+tot/10) </script>
墨小漓 提問者 回復 imalwayshere
你的resul()函數都沒有返回值啊
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
3 回答編程練習 某班的成績出來了,現在老師要把班級的成績打印出來。
1 回答這個求全班成績為什么一直為0?
2 回答老師要把班級的成績打印這題怎么做啊
2 回答計算器程序問題
2 回答7.23練習:算班級平均成績,無任何結果,求幫忙看看錯在哪里
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-09-01
<!DOCTYPE ?HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全帶,準備啟航</title>
<script type="text/javascript">
? //通過javascript的日期對象來得到當前的日期,并輸出。
? var mydate=new Date();
? var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";
? var myday=mydate.getDay();
? var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];?
? //weekday[myday]實現數字和星期幾的轉換
? //成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? var newscore=scoreStr.split(";"); //分割字符串成字符串數組。
? document.write("分割后得到的字符串數組:"+"<br/>"+newscore+"<br/>");//測試代碼
? //document.write(newscore[0]+"<br/>");//測試代碼
? document.write("數組長度:"+newscore.length+"<br/>");
? function resul(){
? ? var sum = 0;
? for(var i=0;i<newscore.length;i++){
? ? ?newscore[i]=newscore[i].substring(3);//提取數組元素中的分數,重新給數組賦值
? ? //document.write(newscore[i]+"<br/>");
? ? sum=sum+parseInt(newscore[i]);//計算班級總分;parseInt(newscore[i])從數組中將成績撮出來。然后求和取
? ? return sum;
return newscore[i];
//使用parseInt()函數可解析一個字符串,并返回一個整數。
? }
?//document.write("新數組:"+newscore+"<br/>");
?var priscore=Math.round(sum/newscore.length);//計算平均分
?document.write("- -班級平均分:"+priscore+"<br/>");
? }
? //從數組中將成績撮出來,然后求和取整,并輸出。
?document.write(time+" "+weekday[myday]);
? ?resul();//調用計算平均分函數
? // document.write(resul());//( ╯□╰ )( ╯□╰ )正確代碼
錯了。</script>
</head>
<body>
</body>
</html>
2016-09-02
在各位大大的幫助下,這題小白終于弄出來了。謝謝大家。
<!DOCTYPE ?HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全帶,準備啟航</title>
<script type="text/javascript">
? //通過javascript的日期對象來得到當前的日期,并輸出。
? var mydate=new Date();
? var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";
? var myday=mydate.getDay();
? var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];?
? //weekday[myday]實現數字和星期幾的轉換
? //成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? var newscore=scoreStr.split(";"); //分割字符串成字符串數組。
? document.write("分割后得到的字符串數組:"+"<br/>"+newscore+"<br/>");//測試代碼
? document.write("數組長度:"+newscore.length+"<br/>");
? function resul(){
? ? var sum = 0;
? for(var i=0;i<newscore.length;i++){
? ? ?newscore[i]=newscore[i].substring(3);//提取數組元素中的分數,重新給數組賦值
? ? //document.write(newscore[i]+"<br/>");
? ? sum=sum+parseInt(newscore[i]);//計算班級總分;parseInt(newscore[i])從數組中將成績撮出來。然后求和取
? ? ?//使用parseInt()函數可解析一個字符串,并返回一個整數。
? ??
? }
?//document.write("新數組:"+newscore+"<br/>");
?var priscore=Math.round(sum/newscore.length);//計算平均分
return priscore;//平均分
? }
? //從數組中將成績撮出來,然后求和取整,并輸出。
?document.write(time+" "+weekday[myday]);
? document.write("- - - 班級平均分:"+resul());//o(^▽^)o,這回終于沒有報錯了
</script>
</head>
<body>
</body>
</html>
2016-09-01
2016-08-31
你的resul()函數以document.write("- -班級平均分:"+priscore+"<br/>");結尾,并沒有return返回值,所以該函數完成后就是“--班級平均分:81”,然而document.write輸出內容是字符串或者是一個變量值,所以說要想用document.write去調用函數,這個函數必須是返回值或字符串的。這樣你用document.write調用沒有返回值的函數就會報錯,對于沒有返回值的函數就要直接調用,如resul();
2016-08-31
給你看看我的思路,希望能對你有幫助:
2016-08-31
你的resul()函數都沒有返回值啊