是哪错了吗?为什么显示不出来

来源:7-23 编程练习

M阿

2017-09-18 10:50

<!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 week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
  document.write(
      wydate.getFullYear()+"年"+
      (mydate.getMonth()+1)+"月"+
      mydate.getDate()+"日"+" "
      week[mydate.getDate()]
      );

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var marry= scoreStr.split(";");
   document.write(marry);

  //从数组中将成绩撮出来,然后求和取整,并输出。
  var score = new Array();
  var sum=0;
  for(var i=0;i<=marry.length;i++;)
  {
     sum+=parseInt(marry[i].split(3,5));
     document.write(sum);
  }
   document.write("--班级总分为:" + sum);
   document.write(",班级平均分为(保留整数):" + Math.round(sum/marry.length));

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

写回答 关注

2回答

  • 作孽的赌徒_
    2017-09-18 16:59:37
    已采纳

    一个一个来,从上到下:

    1. //var week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

    星期日后面的逗号是中文的,请改成英文

    2.//document.write(
          wydate.getFullYear()+"年"+
          (mydate.getMonth()+1)+"月"+
          mydate.getDate()+"日"+" "
          week[mydate.getDate()]
          );

    wydate改成mydate,然后在 week[mydate.getDate()]前面加上一个+号,并且把这句里面的getDate改成getDay

    3. var score = new Array();

    这句话存在完全没有任何意义,可以直接去掉

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

    把i<=marry.length的=去掉,i++后面的分号去掉

    5. sum+=parseInt(marry[i].split(3,5));

    改成sum+=parseInt(marry[i].substr(marry[i].indexOf(":")+1));   首先这里的split是切割的意思,并不是提取,也就是说你用了split得到的是更多的数组,而且上面的数组中根本没有3,你用3切割切到外星去吗?sum+=parseInt(marry[i].substr(marry[i].indexOf(":")+1)); 这句话的意思是,上面已经被你分割的数组里的成员,从:后面的一位开始提取,一直到每个成员的最后一位为止,也就是分数,并且将其转化为int类型与sum进行相加。

    6.document.write(",班级平均分为(保留整数):" + Math.round(sum/marry.length));

    这里你用的是四舍五入,但是题目要求是显示81,所以应该用的是floor,但是没有什么问题,这个你自己想用啥就用啥。

    最后因为你的 document.write(sum);写在for循环里面,所以每循环一次就会打印一次。而且因为没有换行所以会显示在一行里面,非常丑。




    M阿

    非常感谢!

    2017-09-19 15:16:42

    共 1 条回复 >

  • 慕丝3254249
    2017-09-18 11:15:47

    <!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 week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

      document.write(

          mydate.getFullYear()+"年"+

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

          mydate.getDate()+"日"+" "+

          week[mydate.getDate()]

          );


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

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

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

       document.write(marry);


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

      var score = new Array();

      var sum=0;

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

      {

         sum+=parseInt(marry[i]);

         document.write(sum);

      }

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

       document.write(",班级平均分为(保留整数):" + Math.round(sum/marry.length));


    </script>

    </head>

    <body>

    </body>

    </html>


JavaScript进阶篇

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

468190 学习 · 21891 问题

查看课程

相似问题