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

求问为什么均分是nan

<!DOCTYPE  HTML>
<html >
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>系好安全带,准备启航</title>

   <script type="text/javascript">

       //通过javascript的日期对象来得到当前的日期,并输出。
       var mydate=new Date();
       var myyear=mydate.getFullYear();
       var weekend=new Array();
       weekend=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
       var myday=mydate.getDay();
       var mymonth=mydate.getMonth();
       var yuefen=new Array();
       yuefen=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];

       var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
       var sum=0;
       var score=new Array();
       for(var i=0;i<=9;i++)
       {
           score[i]=scoreStr.substr(3*(i+1),2);
           sum += parseInt(score[i]);
       }
document.write(myyear+"年"+yuefen[mymonth]+weekend[myday]+"--班级总分为:"+sum)
       //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦



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



   </script>
</head>
<body>
</body>
</html

提问者:dongdong_6088 2017-05-30 21:37

个回答

  • 慕勒7123956
    2017-05-30 22:46:39
    已采纳

    你的score获取的有问题,

    应该是每六个字符获取一次

    score[i]=scoreStr.substr(6*i+3,2);

    但是其实很不推荐使用这种方法,适用性太差,成绩或者名字的长度发生变化就获取失败。

    可以看看下面这个

           var score=new Array();
           var ss=scoreStr.split(';');
           for(var i=0;i<ss.length;i++)
           {
           	score.push(ss[i].split(':')[1]);
           }
           console.log(score);