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

万一里面的人名不等于两个字呢?万一里面的成绩不等于两位数呢?怎么弄啊?

万一里面的人名不等于两个字呢?万一里面的成绩不等于两位数呢?怎么弄啊?

提问者:枢弦 2016-06-23 15:27

个回答

  • 黑色旋风
    2016-06-23 19:04:09

      //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
      scoreStr = scoreStr.split(';').map(function(x){
          return parseInt(x.split(':')[1]);
      });
      //从数组中将成绩撮出来,然后求和取整,并输出。
      var sum = scoreStr.reduce(function(sum,cur){
          return sum+cur;
      },0);
      document.write('班级总分为:' + Math.ceil(sum/scoreStr.length));

    总会有(更懒的)解决方法..

  • goodyangbo
    2016-06-23 18:36:30

    媳妇儿写的
    var arr1 = scoreStr.split(';');
    var score = new Array;
    for(i=0;i<=arr1.length-1;i++){
    score[i]=arr1[i].split(":")[1]
    document.write(score[i]+'<br/>')
    }


    自己写的
    var arr1 = scoreStr.split(';');
    var score = new Array;
    for(i=0;i<=arr1.length-1;i++){
    score[i]=arr1[i].substr(arr1[i].indexOf(':')+1)
    document.write(score[i]+'<br/>')
    }

  • 枫见3250315
    2016-06-23 16:12:44

    再改呗

  • 束先森
    2016-06-23 15:56:26

     var scoreArr = scoreStr.split(';');
     var sum = 0;
     for (var i = 0; i < scoreArr.length; i++) {
        sum += parseInt(scoreArr[i].split(':')[1]);
     }
     document.write("班级总分" + sum);