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

为甚我的成绩输出都是返回了数据类型NaN,没有数值?求解

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>系好安全带,准备启航</title>


<script type="text/javascript">


  //通过javascript的日期对象来得到当前的日期,并输出。

  //星期数组

  var week=new Array('星期日','星期一','星期二','星期三','星期四','星期五','星期六');

  //获取日期

  var date=new Date();

  //获取年

  var year=date.getFullYear();

    //获取月

    var month=date.getMonth();

 // 获取日

 var day=date.getDay();

 var today='';

  //获取星期

  switch(day){

      case 0:today='星期日';

      break;

      case 1:today='星期一';

      break;

      case 2:today='星期二';

      break;

      case 3:today='星期三';

      break;

      case 4:today='星期四';

      break;

      case 5:today='星期五';

      break;

      case 6:today='星期六';

      break;

      default:today='这是你造的吗?';

  };

  //拼接字符串输出

  alert(year+'年'+month+'月'+day+'日'+' '+today);

  

  


  

  

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

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

 

//切割字符串成数组(姓名:成绩)

var number=scoreStr.split(";");

//单拿出成绩到一个数组中

var score=new Array();  //用于存储成绩

//提取成绩到数组score中

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

    var per=number[i].split(":");

    score[i]=parseInt(per[1]);

};


  //从数组中将成绩撮出来,然后求和取整,并输出。

  var sum;//sum存储成绩和

  for(j=0;j<score.length;j++){

      sum+=score[j];

  };

alert(sum);//输出成绩和

//ave平均值

var ave=sum/(score.length);

//打印平均值

alert("平均出成绩为:"+ave);


</script>

</head>

<body>

</body>

</html>


正在回答

4 回答

感觉你写的有些复杂,我在你的基础上改了改,希望可以帮到你

<!DOCTYPE html>


<html>


<head>


<meta http-equiv="Content-Type" Content="text/html; charset=gbk" />


<title> 平均分</title>  


<script type="text/javascript">


 var mydate=new Date();


 document.write(mydate.getFullYear()+"年"+(mydate.getMonth()+1)+"月"+mydate.getDate()+"日");




 var mydate=new Date();


 var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];


 document.write("   " +weekday[mydate.getDay()] ); 






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


var scoreArr=scoreStr.split(";");


var sum=0;


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


var index = scoreArr[i].indexOf(":");

document.write("index"+": "+index+"&nbsp"+"&nbsp")

sum = parseInt(  scoreArr[i].substr(index+1)  )+sum;

document.write(sum+"<br>")

}


 av = sum/scoreArr.length;


 av = Math.floor(av);


document.write("班级总分为" + sum );


document.write("班级平均分为" + av );


</script>


</head> 


<body> 


</body>


</html>


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

getDay()函数返回的是星期几(星期日为0)

要返回日期必须用getDate().

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

还有问题,我的日期怎么是2018年8月5日呀,

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

符合十八岁的剧本

返回的月份也是从0开始的
2018-09-15 回复 有任何疑惑可以回复我~
#2

慕妹6042494

月份返回值0-11,所以正确的月份要在返回值上+1
2018-09-18 回复 有任何疑惑可以回复我~
#3

祖国一霸 提问者 回复 符合十八岁的剧本

谢谢~
2018-09-19 回复 有任何疑惑可以回复我~
#4

祖国一霸 提问者 回复 慕妹6042494

谢谢,知道啦~
2018-09-19 回复 有任何疑惑可以回复我~
查看1条回复

还有一个问题,sum初始值“=0”;sum结果为800多,为甚直接申明变量var sum;就会出现3000?

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

举报

0/150
提交
取消

为甚我的成绩输出都是返回了数据类型NaN,没有数值?求解

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