明图
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值)
你说的我倒是没理解什么意思,每次加上815?你的代码有问题的,最后得到的是个
因为你是sum+=i;的形式,应该知道声明变量要赋初值0的,你可以写个输出代码,测试下未赋值的情况下sum的值,这里可以给你说下是undefined的,这样的运算结束得到的是是个啥东西,我们也不知道了,计算机输出也是NaN
解决办法:
for循环外部声明定义变量var sum = 0;
sum += score[i]
JavaScript进阶篇
468781 学习 · 22507 问题
相似问题