為什么總分輸出結果是NaN?
<!DOCTYPE ?HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全帶,準備啟航</title>
<script type="text/javascript">
? //通過javascript的日期對象來得到當前的日期,并輸出。
? var Time=new Date();
? var weekdy=["日","一","二","三","四","五","六"],
? year=Time.getFullYear(),
? month=Time.getMonth()+1,
? date=Time.getDate(),
? day=Time.getDay();
? document.write(
? ? ? "今天是:"+year+"年"+month+"月"+date+"日 ?星期"+weekdy[day]+"<br>");
??
? //成績是一長竄的字符串不好處理,找規(guī)律后分割放到數組里更好操作哦
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
??
? ?document.write(scoreStr.split(";")+"<br>");
? ?var sorce=0;
? ?for(var i=0;i<scoreStr.length;i++){
? ? ? sorce+=parseInt(scoreStr[i].split(":").slice(1));
? ?}
? ?document.write("總分"+sorce);
? //從數組中將成績撮出來,然后求和整,并輸出。
??
</script>
</head>
<body>
</body>
</html>
2018-11-28
看下我的代碼:
<!DOCTYPE? HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全帶,準備啟航</title>
<script type="text/javascript">
? function getScore() {
? ? ? var mydate = new Date();
? ? ? // 分別得到年月日
? ? ? var year = mydate.getFullYear();
? ? ? var month = mydate.getMonth();
? ? ? var day = mydate.getDay();
? ? ? var week = mydate.getDay();
? ? ??
? ? ? // 年月日組成字符串
? ? ? var ymd = year + "年" + month + "月" + day + "日";
? ? ??
? ? ? var weekArr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
? ? ??
? ? ? document.write(ymd + " " + weekArr[week] + "<br/>");
? ? ??
? ? ? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? ??
? ? ? // 按“;”進行分割得到數組
? ? ? var scoreArr = scoreStr.split(";");
? ? ??
? ? ? // 定義一個總分數
? ? ? var sumScore = 0;
? ? ??
? ? ? document.write("班級中分數分數如下:<br/>");
? ? ??
? ? ? // 打印分數,并對每個人分數進行求和
? ? ? for(var i=0;i<scoreArr.length;i++) {
? ? ? ? ? var studentInfos = scoreArr[i];
? ? ? ? ? var score = parseInt(studentInfos.split(":")[1]);
? ? ? ? ? document.write(score + "<br/>");
? ? ? ? ? sumScore += score;
? ? ? }
? ? ?
? ? ? document.write("班級總分數為:" + sumScore + "<br/>");
? ? ??
? ? ? // 計算平均分數
? ? ? var avgScore = sumScore / scoreArr.length;
? ? ??
? ? ? // 對平均數保留整數
? ? ? var newAvgScore = Math.round(avgScore);
? ? ??
? ? ? // 彈框形式打印平均分數
? ? ? alert(ymd + " " + weekArr[week] + "--班級平均分數為:" + newAvgScore);
? ? ??
? ? ? document.write(ymd + " " + weekArr[week] + "--班級平均分數為:" + avgScore + "<br/>");
? ? ??
? ? ? document.write(ymd + " " + weekArr[week] + "--班級平均分數為(四舍五入后):" + newAvgScore);
? ? ??
? }
</script>
</head>
<body>
? ? <from>
? ? ? ? <input type="button" value="點擊獲取平均分數" onclick="getScore()" />
? ? </from>
</body>
</html>
2018-11-20
我修改了一下,原來的代碼中? sorce+=parseInt(scoreStr[i].split(":").slice(1)); 這一句會將單個非數字字符傳入parseInt函數導致返回NaN。