有沒有大神可以解析一下這串代碼..
<!DOCTYPE ?HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全帶,準(zhǔn)備啟航</title>
<script type="text/javascript">
? var nowday=new Date();
? var weekday=["星期一","星期二","星期三","星期四","星期五","星期六","星期天"];
? document.write(
? ? ? nowday.getFullYear()+"年"+
? ? ? nowday.getMonth()+"月"+
? ? ? nowday.getDate()+"日"+
? ? ? weekday[nowday.getDay()]+"</br>"
? ? ? );
??
?
? var sorceStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? var sourceArr = sorceStr.split(";");
? ?var score = new Array();
? ?var sum = 0;
? ?for (var i = 0; i < sourceArr.length; i ++) {
? ? ? ?sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(";")+1));
? ? ? ?//document.write("<br>" + sum);//test
? ?}
? ?document.write("--班級總分為:" + sum);
? ?document.write(",班級平均分為(保留整數(shù)):" + Math.round(sum/sourceArr.length))
??
?
? //從數(shù)組中將成績撮出來,然后求和取整,并輸出。
??
</script>
</head>
<body>
</body>
</html>
?sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(";")+1));
2016-11-22
首先你的代碼錯(cuò)了,是冒號不是分號
?sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1));
他的意思是sourceArr[i].indexOf(":")當(dāng)前數(shù)字第i個(gè)字符串':'在第幾個(gè)字符
顯然,例如 ? 小明:87 ?
? ? ? ? ? ? ? ? ? ? ?1 2 3
冒號在第三個(gè)字符位置,輸出的是3
至于為何+1,是因?yàn)閟ubstr(3+1)也就是substr(4)的意思是獲取字符串從第4個(gè)字符開始的所有字符(包括第4個(gè))
所以sourceArr[i].substr(sourceArr[i].indexOf(":")+1)輸出的是'87'這個(gè)字符串
然而這不夠,需要轉(zhuǎn)化為數(shù)字,所以?parseInt(string)能把字符串轉(zhuǎn)化為number
以上是我的理解,不知道能否看懂
2016-11-22
???sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(";")+1));
就這句的";"改成“:”就可以了,上面那位大神解釋得好清晰啊,慚愧。
還有月份那里要記得+1,?(nowday.getMonth()+"月"+1)
你這個(gè)有些地方寫得比示例還要好,學(xué)習(xí)了