<!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 week=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
//通过javascript的日期对象来得到当前的日期,并输出。
document.write(
date.getFullYear()+"年 "
+date.getMonth()+"月 "
+date.getDate()+"日 "
+week[date.getDay()]);
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
var scoreStr = "小明:87;小花:81;;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"
var arr=scoreStr.split(";");
document.write("<br>"+arr);
//从数组中将成绩撮出来,然后求和取整,并输出。
var sum=0;
for(var i= 0 ; i < arr.length ; i++){
sum = sum + parseInt(arr[i].slice(3,5));
}
document.write(sum);
</script>
</head>
<body>
</body>
</html>
var scoreStr = "小明:87;小花:81;;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"
因为你这行 81后面有两个;,去掉一个即可
如果不想去掉,想兼容这种错误的话;循环里面加个判断
for(var i= 0 ; i < arr.length ; i++){ if(arr[i]){ sum = sum + parseInt(arr[i].slice(3,5)); } }
你那么写只能名称是2个字才行,你可以试下这么写
for(var i= 0 ; i < arr.length ; i++){ var narr =arr[i].split(':'); if(narr.length>1){ sum = sum + parseInt(narr[1]); } }