为了账号安全,请及时绑定邮箱和手机立即绑定

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

  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 回答

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

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

解决办法:

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

0 回复 有任何疑惑可以回复我~
sum += score[i]


0 回复 有任何疑惑可以回复我~
#1

明图 提问者

?我的不就是这个
2017-02-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号