成绩总分的输出结果为什麽是:NaN; 怎样能解决这个问题?

来源:7-23 编程练习

ANAFKH

2016-06-24 21:13

<!DOCTYPE  HTML>

<html >

<head>

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

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

<script type="text/javascript">

var mydate=new Date();

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

document.write(mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDay()+"日"+weekenday[mydate.getDay()]);

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

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

  var myarr=scoreStr.split(";")

 var sum=0;

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

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

 {

   sum=sum+parseInt(myarr[i]);

 }

 document.write("xx班级总分为:"+sum+"<br/>"+"xx班级的平均分为:"+ Math.round(sum/myarr.length));

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

</script>

</head>

<body>

</body>

</html>


写回答 关注

3回答

  • 慕雪1032536
    2016-07-07 11:41:24

    也可以不用分割,直接选定字符串的中的数字。用slice。数组中”小明:87“一共是0.1.2.3.4五个字符,你从3开始选定就行了。sum=sum+parseInt(myarr[i].slice(3))或者sum=sum+parseInt(myarr[i].slice(3.5)).

  • 琢骨Lee
    2016-06-30 16:52:14

    你还少了一步,分割是小明:87 这样,你得获取后面的数字,用 substr()或者slice(),比如我的sum=sum+parseInt(arr[i].substr(3,2));

  • 我的大树
    2016-06-24 22:05:22

    myarr[i]内容为 name:score  所以你还要再用split(":")进行分割,得到的的二维数组中score[i][1]才是成绩;

    score[i]=myarr[i].split(":");

    sum+=parseInt(score[i][1]);

    记得声明score为数组。

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题