成绩提取代码,求指点

来源:7-23 编程练习

慕勒2515773

2016-05-11 20:20

  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var score=new Array();
 var score=parseInt(scoreStr.substr(scoreStr.indexOf(":")+1,2));
 var n=score.length;
 for(var j=0;j<n;j++)
 { var sum=0;
 sum=sum+score[j];
 document.write(score[j]);}
 document.write(sum/n);


不出成绩,求大神指点错在哪里

写回答 关注

4回答

  • qq_Lovesong_0
    2016-05-11 21:51:11
    已采纳

    indexOf() 返回的是首次出现的位置,所以你scoreStr.substr(scoreStr.indexOf(":")只不过是一个固定值,并不是你想象的取了所有的“:”所在的后面的值,并且生成了列表。

    我修改了你的代码:

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

    var arrStr = scoreStr.split(";")

    var score=new Array();

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

    score[i] = parseInt(arrStr[i].substr(scoreStr.indexOf(":")+1,2));

    }


    var n=score.length;

    var sum=0;

    for(var j=0;j<n;j++){ 

    sum=sum+score[j];

    document.write(score[j]+"<br />");

    }

    document.write(sum/n);


    慕勒2515...

    非常感谢!

    2016-05-14 14:38:27

    共 1 条回复 >

  • qq_溜溜_3
    2016-05-11 22:20:26

    script type="text/javascript">


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

      var a=new Date();

      var b=['一月','二月','三月','四月','5月'];

      var c=['星期一','星期二','星期三','星期四'];

      document.write(a.getFullYear()+'年'+b[a.getMonth()]+a.getDate()+'日'+c[a.getDay()]);

      


      

      

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

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

      var d=new Array();

      d=scoreStr.split(';');

      var e=new Array();

      var sum=0;

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

      e[i]=d[i].substr(3,4);

      sum=sum+parseInt(e[i]);

      }

      document.write(sum/d.length);

     



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

      


  • 一pan花生
    2016-05-11 21:56:42

    你这个第三行,后边indexOf(":")只是返回出现:的位置,应该会返回一串越来越大的数字,因为这个数组里边就一大项,可先用split()将不同名字的人分割出来返回出一个数组。

  • 晚唱
    2016-05-11 21:17:34

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

      var arrStr = new Array();

      arrStr = scoreStr.split(";");

      var sum = 0;

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

        sum = sum + parseInt(arrStr[i].substring(3));

      }


JavaScript进阶篇

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

468788 学习 · 22582 问题

查看课程

相似问题