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

关于此题中数组写法问题等

1、此题中将成绩分离后,为什么不可以再分离一次。

比如var score1=score0.split(”;“);

       var score2=score1.split(”:“);

2、此题中将成绩分离后,在计算中定义数组时,直接写成 

比如var score1=score0.split(”;“)

       for{。。。。。;score1[i]。。。}

为什么可以这样写?

提问者:Summer1987 2016-06-23 21:25

个回答

  • z阿汀
    2016-06-23 22:00:15
    已采纳

    第一次根据分号分离后,score1已经成了数组,第二次再根据冒号分离时,要写成在i循环里,score1[i].split(":"),即针对score1数组里面的每一个元素根据冒号分离。

    我一开始也没明白这个,然后就换了一个思路写的代码,你可以参考一下。

    <script type="text/javascript">

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

    var j=0;

    var grade=new Array();

    for(i=0;i<scoreStr.length-4;i++){//防止最后一名同学是100分

      if(scoreStr.charAt(i)==":"){

          var m=scoreStr.indexOf(";",i);

         grade[j]=scoreStr.substring(i+1,m);

         j++;

      }

    }

    grade[j]=scoreStr.substring(scoreStr.indexOf(":",i)+1);//因为最后一个分数没有分号,所以需要单独添加进数组


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

      var sum=0;

      for(x in grade){

          sum=sum+parseInt(grade[x]);

      }

      document.write(date.getFullYear()+"年"+date.getMonth()+"月"+date.getDate()+"日 "+week[date.getDay()]+"--班级总分为"+sum+" 班级平均分为"+Math.round(sum/grade.length));

    </script>