问答详情
源自:7-23 编程练习

我的输出平均成绩无法输出。但是把对应语句放进for循环就能输出,请问是为什么?

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</title>

<script type="text/javascript">
var date = new Date();
var weekday=["星期一","星期二","星期三","星期四","星期五","星期六","星期天"]
 //通过javascript的日期对象来得到当前的日期,并输出。
 document.write(date.getFullYear()+"年"
                  +date.getMonth()+"月"
                  +date.getDate()+"日"
                  +"&nbsp"+weekday[date.getDay()-1]);

 //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
 var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
 var student=scoreStr.split(";");
 var score = new Array();
 var sum=0;
 for(var i=0;i<scoreStr.length;++i){
 score[i]=student[i].substr(3,2);
 sum+=parseInt(score[i]);
 }
 document.write(parseInt(sum)+"<br>");
 //从数组中将成绩撮出来,然后求和取整,并输出。
 


</script>
</head>
<body>
</body>
</html>


提问者:FoodPorn 2015-12-18 01:06

个回答

  • 一毛钱
    2015-12-18 08:59:05

    for (var i = 0; i < student.length; ++i) {
    				score[i] = student[i].split(':')[1];
    				sum += parseInt(score[i]);
    			}
    			document.write(parseInt(sum) + "<br>");
    			//从数组中将成绩撮出来,然后求和取整,并输出。
    			document.write(sum/student.length);

    for 这里我给你重新写了一下,有下面三个错误

    1. i<student.length 你写成了 i<scoreStr.length;

    2. score[i] = student[i].substring(3,6); 你写成了 score[i]=student[i].substr(3,2);还有就是substring() 方法用于提取字符串中介于两个指定下标之间的字符。这个你其实直接可以写成这样的 score[i] = student[i].split(':')[1];还有这块没有必要用数组存储,你直接定义一个var score就行了

    3. document.write(sum/student.length); 输出平均值