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

请问怎样简化这段代码,感觉写的太冗余了。

<script type="text/javascript">

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

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var myarr= new Array(10);
  myarr[0]=parseInt(scoreStr.substr(3,2));
  myarr[1]=parseInt(scoreStr.substr(9,2));
  myarr[2]=parseInt(scoreStr.substr(15,2));
  myarr[3]=parseInt(scoreStr.substr(21,2));
  myarr[4]=parseInt(scoreStr.substr(27,2));
  myarr[5]=parseInt(scoreStr.substr(33,2));
  myarr[6]=parseInt(scoreStr.substr(39,2));
  myarr[7]=parseInt(scoreStr.substr(45,2));
  myarr[8]=parseInt(scoreStr.substr(51,2));
  myarr[9]=parseInt(scoreStr.substr(57,2));
  var sum=0;
  var aveg;
  for(i=0;i<=myarr.length-1;i++){
    sum=sum+myarr[i];  
  }
  aveg=sum/10;
  var aveg1=Math.round(aveg);
  document.write(myyear+"年"+mymonth+"年"+myday+"日"+" " +weekday[myweek]+"--班级总分为:"+aveg1);
  //从数组中将成绩撮出来,然后求和取整,并输出。

提问者:Libertine 2017-08-26 22:30

个回答

  • qq_灰色头像_17
    2017-08-30 14:33:20

    <!DOCTYPE  HTML>

    <html >

    <head>

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

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


    <script type="text/javascript">


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

      var now=new Date();

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

      document.write(

                     now.getFullYear()+"年"

                     +(now.getMonth()+1)+"月"

                     +now.getDate()+"日 "

                     +weekday[now.getDay()]+"<br/>"

                     );

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

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

      

      var scorestr = sorceStr.split(";");

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

        document.write("统计人数为:"+scorestr.length+"<br/>");

       var sum=0

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

         var chengji=scorestr[i].substr(scorestr[i].indexOf(":")+1);

          document.write(scorestr[i]+"<br/>");

          sum+=parseInt(chengji);

      }

    document.write("总成绩:"+sum+"<br/>");

    sum1=sum/scorestr.length

     document.write("平均成绩:"+sum1+"<br/>");

     document.write("平均成绩保留整数:"+Math.round(sum1)+"<br/>")

    </script>

    </head>

    <body>

    </body>

    </html>


  • Sincerajn
    2017-08-26 22:37:21

    使用循环来赋值,比如:

    for(var i = 0;i < myarr.length;i++){
         myarr[i]=parseInt(scoreStr.substr(*,*));
    }