输出不了?

来源:7-23 编程练习

慕虎9706840

2017-03-19 11:33

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回答

  • qq_明_23
    2017-03-19 15:02:33
    已采纳

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

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

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

    慕虎9706... 回复qq_明_2...

    谢谢!

    2017-03-19 18:06:14

    共 4 条回复 >

  • HEternally
    2017-03-19 15:21:17

    http://img.mukewang.com/58ce31290001c18408930411.jpg我就改了那两个地方,还要你的月份是要+1的,因为你说的输出不了的问题我就没注意这个

    慕虎9706...

    谢谢啊。另一个回答也说明了这个问题。 我想知道第二个是为什么不能等于?我输入<=的时候他可以输出每一个数字。然后如果等于11的话,它输出的是第十二个数字。是不是因为index运行第12次时找不到冒号?那如果我给i的初始值是1可以吗?

    2017-03-19 15:23:54

    共 1 条回复 >

  • HEternally
    2017-03-19 14:48:33

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

    HEtern... 回复慕虎9706...

    我去定义i然后改了i的范围就可以输出总成绩

    2017-03-19 15:11:07

    共 2 条回复 >

JavaScript进阶篇

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

468062 学习 · 21891 问题

查看课程

相似问题