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

JavaScript_字符串中提取数字并求和

<script type="text/javascript">
  var source = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var source2 = source.split(";");
  for (var i = 0; i < source2.length; i++) {
      var score=new Array();
      score[i]=parseInt(source2[i].substr(source2[i].indexOf(":")+1));//source2[i].indexOf(":")表示从:出现的位置,而+1则是把:下一个开始提取
      document.write(score[i]+",");
      var sum;
      sum +=score[i];
   }
   document.write(sum);
   </script>

为啥每运行一次,sum的值就会加上815(815才是本来要求的sum值)

提问者:明图 2017-02-15 10:26

个回答

  • iwbo
    2017-02-15 11:16:52
    已采纳

    var sum;应该放到循环外面且要赋值为0.

  • Miaaaaaaa
    2017-02-15 11:40:55

    对sum的赋值应该放在循环的外面,且要赋初始值0

  • Elvira____
    2017-02-15 11:26:34

    <script type="text/javascript">

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

          var source2 = source.split(";");

                    var=sum; sum=0;

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

                          var score=new Array();

                          score[i]=parseInt(source2[i].substr(source2[i].indexOf(":")+1));

                     //source2[i].indexOf(":")表示从:出现的位置,而+1则是把:下一个开始提取

                          document.write(score[i]+",");

                           sum +=score[i]; }

                           document.write(sum);

       </script>