JS里,在字符串内提取数字并求和

来源:7-23 编程练习

明图

2017-02-15 10:21

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

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



写回答 关注

2回答

  • helloworld2008
    2017-02-18 18:22:40

    你说的我倒是没理解什么意思,每次加上815?你的代码有问题的,最后得到的是个

    因为你是sum+=i;的形式,应该知道声明变量要赋初值0的,你可以写个输出代码,测试下未赋值的情况下sum的值,这里可以给你说下是undefined的,这样的运算结束得到的是是个啥东西,我们也不知道了,计算机输出也是NaN

    解决办法:

    for循环外部声明定义变量var sum = 0;

  • 慕粉2147544319
    2017-02-15 10:27:07
    sum += score[i]


    明图

    ?我的不就是这个

    2017-02-15 10:37:03

    共 1 条回复 >

JavaScript进阶篇

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

468781 学习 · 22507 问题

查看课程

相似问题