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

输出不了?

var mydate=new Date();

var dateToday=mydate.getFullYear()+"年"+mydate.getMonth()+'月'+mydate.getDate()+'日';

var myweekday=new Date();

var weekday=['Sunday','Monday','Tuesday','Weekday','Thursday','Friday','Saturday'];

document.write(dateToday.concat(weekday[myweekday.getDay()])+"<br/>");


var scoreStr ="小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

var everyscore=scoreStr.split(';'); //此时every是一个数组。

// document.write(everyscore+"<br/>");

var sum=0;

for(i=0;i<=everyscore.length;i++){

var index=everyscore[i].indexOf(':')

var everynum=parseInt(everyscore[i].substr(index+1,2) );

// document.write(everynum+'&nbsp');

sum=sum+everynum;

}

document.write(sum);

还有,为什么参代里会给平均数赋值0,直接var av =sum/everyscore.length;不可以吗?



正在回答

3 回答

首先,月份得加一, 因为获得的是从0开始的,其次,把for里面的(<=)的=号去掉,因为你设置的i超出了数组长度,所以报错,输出不了,被系统当作text处理了。

你没输出的主要原因是因为你设置的i超出了数组长度,所以报错输出不了,

因为数组是从0开始的,而everyscore.length=10,如果是i<=10的话,那么i会输出11个数字 

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

qq_明_23

给个最佳答案呗,特地一句一句帮你查看的
2017-03-19 回复 有任何疑惑可以回复我~
#2

慕虎9706840 提问者

好的。但是我还有几个问题。 第一个是月份怎么加一? 第二个是为什么不能等于?我输入<=的时候他可以输出每一个数字。然后如果等于11的话,它输出的是第十二个数字。是不是因为index运行第12次时找不到冒号?那如果我给i的初始值是1可以吗?
2017-03-19 回复 有任何疑惑可以回复我~
#3

qq_明_23 回复 慕虎9706840 提问者

因为你得到的月份是从0开始的,0代表1月,1代表2月,你可以自己试下getmonth()的几个输出结果。 第二个就是你说的这样,第12次数组里面没有值了,而你还强行输出,明显不行,把i初始值设置成1也不行,因为第一个数组是从0下标开始的,也就是第一个数组是everyscore[0],如果设置成1就变成从第二个开始了
2017-03-19 回复 有任何疑惑可以回复我~
#4

慕虎9706840 提问者 回复 qq_明_23

谢谢!
2017-03-19 回复 有任何疑惑可以回复我~
查看1条回复

你代码写错了,for循环里面的i你都没有定义,然后i的范围应该是i<everyscore.length;你改下就有用了,然后你求平均值可以直接那样用,不要先赋值0;

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

慕虎9706840 提问者

不对,定义了I了。而且能输出每一个成绩。但是计算不了总成绩sum。
2017-03-19 回复 有任何疑惑可以回复我~
#2

HEternally 回复 慕虎9706840 提问者

我去定义i然后改了i的范围就可以输出总成绩
2017-03-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       467077    人
  • 解答问题       21874    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

输出不了?

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