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

不知道哪儿错?输出的是NaN。如何修改或者还是逻辑错误?

var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var array=scoreStr.split(":");

var sum=0;
   for(var i=0;i<array.length;i++){
       var temp=parseInt(array[i]);

     sum=sum+temp;
   }
document.write(sum);

正在回答

1 回答

var array=scoreStr.split(":");

这里你以冒号为间隔进行了字符串分割,然后你得到的数组实际上是:

['小明','87;小花','81;小红','97;小天','76;小张','74;小小','94;小西','90;小伍','76;小迪','64;小曼',76]


你可能觉得用parseInt遇到非数字会自动停止的方式来转换,如'87;小花'会被转换为87,但是这个数组第一项是小明,字符串被parseInt会返回NAN,所以最后这个算式变成了:

NaN+87+81+97+76+74+94+90+76+64+76=NaN







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

shadowMike 提问者

嗯,明白了。那我接下来可以用isNaN()来筛选掉NaN。
2014-12-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468191    人
  • 解答问题       21891    个

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

进入课程

不知道哪儿错?输出的是NaN。如何修改或者还是逻辑错误?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信