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

我的这个代码有问题啊,看不出来bug

<!DOCTYPE  HTML>

<html >

<head>

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

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


<script type="text/javascript">

    var date=new Date()

    var week=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];

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

  document.write(

      date.getFullYear()+"年 "

      +date.getMonth()+"月 "

      +date.getDate()+"日&nbsp"

      +week[date.getDay()]);

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

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

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

  document.write("<br>"+arr);

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

  var sum=0;

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

      sum = sum + parseInt(arr[i].slice(3,5));

      }

   document.write(sum);

    

</script>

</head>

<body>

</body>

</html>


提问者:我想改个好听点的名字 2015-11-20 16:35

个回答

  • 李晓健
    2015-11-20 20:39:55
    已采纳

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

    因为你这行 81后面有两个;,去掉一个即可

    如果不想去掉,想兼容这种错误的话;循环里面加个判断

    for(var i= 0 ; i < arr.length ; i++){
        if(arr[i]){
            sum = sum + parseInt(arr[i].slice(3,5));
        }
    }


    你那么写只能名称是2个字才行,你可以试下这么写

    for(var i= 0 ; i < arr.length ; i++){
        var narr =arr[i].split(':');
        if(narr.length>1){
            sum = sum + parseInt(narr[1]);
        }
    }