卡兰尼克
2016-11-22 17:32
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</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(",班级平均分为(保留整数):" + Math.round(sum/sourceArr.length))
//从数组中将成绩撮出来,然后求和取整,并输出。
</script>
</head>
<body>
</body>
</html>
sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(";")+1));
首先你的代码错了,是冒号不是分号
sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1));
他的意思是sourceArr[i].indexOf(":")当前数字第i个字符串':'在第几个字符
显然,例如 小明:87
1 2 3
冒号在第三个字符位置,输出的是3
至于为何+1,是因为substr(3+1)也就是substr(4)的意思是获取字符串从第4个字符开始的所有字符(包括第4个)
所以sourceArr[i].substr(sourceArr[i].indexOf(":")+1)输出的是'87'这个字符串
然而这不够,需要转化为数字,所以 parseInt(string)能把字符串转化为number
以上是我的理解,不知道能否看懂
sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(";")+1));
就这句的";"改成“:”就可以了,上面那位大神解释得好清晰啊,惭愧。
还有月份那里要记得+1, (nowday.getMonth()+"月"+1)
你这个有些地方写得比示例还要好,学习了
JavaScript进阶篇
468190 学习 · 21891 问题
相似问题