有没有考满分的情况 也就是三位数的时候??

来源:7-23 编程练习

xiaohuohuo

2016-01-19 15:42

有没有考满分的情况 也就是三位数的时候??

写回答 关注

5回答

  • 伊望岁月
    2016-01-19 15:50:20
    已采纳

    跟多少位数没关系,你像这样分隔

    var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
    var scoreA = scoreStr.split(';');
    var sum = 0;
    for(var i = scoreA.length; i--;){
    	sum += Number(scoreA[i].split(':')[1]);
    }
    console.log(sum);


    xiaohu...

    非常感谢!

    2016-01-29 10:54:49

    共 1 条回复 >

  • 慕移动9181930
    2022-03-25 11:40:04

    呃....受教了,谢~使..>

  • ac小宇
    2016-01-28 11:38:15

    想了下。用sub提取不如用split二次分割“:”。取第二个字符串转化成整数来写。

  • ac小宇
    2016-01-28 11:36:41

    不论是.substr()h还是.substring()都可以从第三位开始提取成绩,后面的范围可以不填,默认到底。

    使用提取出来的不论是2位数还是3位数。全部加起来除以.length数组长度。然后.floor()向下取整。得到平均值

    我觉得分数三位数没什么。怕名字超过2位数啊。代码还需要相应调整。


  • 宇xixi
    2016-01-21 11:06:28

      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
      var myarr = scoreStr.split(";");
      document.write(myarr[0]+"<br/>");//验证是否分割正确
      var sum=0,avg=0;                             //初始化变量

      // 第一版本:不够灵活的方法,遇到分数为3位数的情况下会计算错误

      /*for(var i=0;i<myarr.length;i++)  {
          sum=sum+ parseInt(myarr[i][3])*10 + parseInt(myarr[i][4]);
          avg=Math.round(sum/myarr.length);
      }*/

      //第二版本,不管分数有几位都可以计算,不会出错
       for(var i=0;i<myarr.length;i++)
      {
        sum=sum+ parseInt(myarr[i].substring(myarr[0].indexOf(":")+1)+"<br>");
        avg=Math.round(sum/myarr.length);
       }
       document.writeln(sum+"<br/>")
       document.writeln(avg+"<br/>")

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题