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

来源:7-23 编程练习

明图

2017-02-15 10:26

<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值)

写回答 关注

3回答

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

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

    明图

    很对,谢谢~

    2017-02-15 11:27:13

    共 1 条回复 >

  • 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>

       


JavaScript进阶篇

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

468781 学习 · 22507 问题

查看课程

相似问题