问答详情
源自:7-23 编程练习

输出不了?

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;不可以吗?



提问者:慕虎9706840 2017-03-19 11:33

个回答

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

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

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

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

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

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

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

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