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

来源:7-23 编程练习

祖国一霸

2018-09-14 16:59

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

  • 慕设计2718092
    2018-10-25 16:59:56

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

    <!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>


  • zyxx
    2018-09-25 15:48:17

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

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

  • 祖国一霸
    2018-09-14 17:08:55

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

    祖国一霸 回复慕妹6042...

    谢谢,知道啦~

    2018-09-19 14:02:15

    共 4 条回复 >

  • 祖国一霸
    2018-09-14 17:04:43

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

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题