會算了,結果81.5
<!DOCTYPE? HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全帶,準備啟航</title>
<script type="text/javascript">
//通過javascript的日期對象來得到當前的日期,并輸出。
var d=new Date();
var week=new Array("天","一","二","三","四","五","六");
var time=d.getFullYear()+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日"+" 星期"+week[d.getDay()];
document.write(time);
//成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦
var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
//提取出字符串中數字,并存到一個數組里
var fenshu=new Array();
for(var i=3;i<scoreStr.length;i=i+6){
fenshu.push(scoreStr.slice(i,i+2));
}
//將所有分數的結果相加
var zongfen=0;
for(var i=0;i<fenshu.length;i++){
zongfen=parseInt(fenshu[i])+zongfen;
}
document.write("      -- 平均分是:"+zongfen/fenshu.length+"</br>");
</script>
</head>
<body>
</body>
</html>
2020-03-17
81.5
2020-04-03
這一段拿出來講,我的目的想把所有的分數提取出來放在一個叫fenshu的數組里面,
怎么提取呢?上面的scoreStr是原始字符串,里面有文字、符號、數字,
scoreStr.slice(i, i + 2)這里用到了一個.slice()方法,作用是截取i到i+2之間的字符串出來,上面定義了i初始值=3,那就是從"小明:87;小花:81;小紅:97……中的第四個,因為是從0開始算的,0是小,1是明,2是:,3是8,4是7,5是;
scoreStr.slice(i, i + 2)第一次運行是scoreStr.slice(3,5),即從字符串中提取出第3位至第5位(不含第5位),也就是小明的成績87,通過.push()方法把這個值加入到數組fenshu
然后是i=i+6;為什么是i+6呢,是因為小明:87;小花:81;小紅:97中,87的8是第3,81的8是第9,97的9是第15,即第一次截取字符串是截?。?,3+2),第二次是(9,9+2),第三次是(15,15+2)……
通過for循環來依次從scoreStr中把成績提取出來放進fenshu這個數組
到最后fenshu=[87,81,97,76,74,94,90,76,64,76]
然后后面又通過一個for循環把分數依次相加得出了總分
var zongfen=0;
for(var i=0;i<fenshu.length;i++){
zongfen=parseInt(fenshu[i])+zongfen;
}
最后總分再除以分數這個數組的長度fenshu.length就是平均分了
2020-04-01
for(var i=3;i<scoreStr.length;i=i+6){
后面這兩段代碼沒有搞清楚,i=3,i為什么會等于3?不解,后面這兩段代碼能否給說明一下,什么意思,謝謝