为了账号安全,请及时绑定邮箱和手机立即绑定

会算了,结果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("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp-- 平均分是:"+zongfen/fenshu.length+"</br>");

</script>

</head>

<body>

</body>

</html>


正在回答

3 回答

81.5


0 回复 有任何疑惑可以回复我~

这一段拿出来讲,我的目的想把所有的分数提取出来放在一个叫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,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就是平均分了


2 回复 有任何疑惑可以回复我~
#1

金刚无敌葫芦娃 提问者

字符串顺序那里写错了……87的8索引是第4不是第三……注意从0开始,我搞错了
2020-04-03 回复 有任何疑惑可以回复我~
#2

金刚无敌葫芦娃 提问者

scoreStr.slice(i, i + 2)第一次运行是scoreStr.slice(3,5),即从字符串中提取出第4位至第6位(不含第6位)
2020-04-03 回复 有任何疑惑可以回复我~

for(var i=3;i<scoreStr.length;i=i+6){

后面这两段代码没有搞清楚,i=3,i为什么会等于3?不解,后面这两段代码能否给说明一下,什么意思,谢谢

0 回复 有任何疑惑可以回复我~
#1

金刚无敌葫芦娃 提问者

var fenshu = new Array(); for (var i = 3; i < scoreStr.length; i = i + 6) { fenshu.push(scoreStr.slice(i, i + 2)); }
2020-04-03 回复 有任何疑惑可以回复我~
#2

金刚无敌葫芦娃 提问者

这一段拿出来讲,我的目的想把所有的分数提取出来放在一个叫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是;
2020-04-03 回复 有任何疑惑可以回复我~
#3

金刚无敌葫芦娃 提问者

scoreStr.slice(i, i + 2)第一次运行是scoreStr.slice(3,5),即从字符串中提取出第3位至第5位(不含第5位),也就是小明的成绩87,通过.push()方法把这个值加入到数组fenshu
2020-04-03 回复 有任何疑惑可以回复我~
#4

金刚无敌葫芦娃 提问者

回复不出来,你看下面吧,我单独回复一条
2020-04-03 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

会算了,结果81.5

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信