庄学爸
2015-11-24 19:36
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</title>
<script type="text/javascript">
//通过javascript的日期对象来得到当前的日期,并输出。
var date=new Date();
var weekend=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
document.write(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日"+weekend[date.getDay()]
+"<br>" );
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var str=scoreStr.split(";");
document.write(str+"<br>");
//从数组中将成绩撮出来,然后求和取整,并输出。
for(var i=0;i<str.length;i++){
var sum=0;
sum=sum+parseInt(str[i].substr(3));
}
sum=sum/str.length
document.write("班级平均成绩为"+sum);
</script>
</head>
<body>
</body>
</html>
var sum=0; for(var i=0;i<str.length;i++){ sum=sum+parseInt(str[i].substr(3)); }
你的问题在这里,你的那个sum不能放到循环里面,放里面的话每一次循环都重新置为0,前面算好的都没有了,最后得到的结果只是最后一个数。
for(var i=0;i<str.length;i++){ var sum=0; sum=sum+parseInt(str[i].substr(3)); }
这是你的代码:
当i=0时,执行var sum=0; sum就等于0,执行 sum=sum+parseInt(str[i].substr(3)); sum = 87;
当i=1时,执行var sum=0; sum又等于0了,执行 sum=sum+parseInt(str[i].substr(3)); sum = 81;
当i=2时,执行var sum=0; sum又等于0了,执行 sum=sum+parseInt(str[i].substr(3)); sum = 97;
.......
然后这术一直循环下去,最后sum就会等于最后一个分数,而不是总和。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题