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

为什么定义变量sum=0,在sum+=的条件下 输出sum还等于0

为什么定义变量sum=0,在sum+=的条件下 输出sum还等于0

慕粉3361053 2016-08-04 21:42:47
  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; var scoreStr1=scoreStr.split(";");   var sum=0; var scoreStr1=new Array();  for(var i=0;i<scoreStr1.length;i++){sum+= parseInt(scoreStr1[i].substr(scoreStr1[i].indexOf(":")+1));}  //从数组中将成绩撮出来,然后求和取整,并输出。  document.write("总分是:"+sum);
查看完整描述

3 回答

已采纳
?
snowmanJS

TA贡献89条经验 获得超53个赞

将 var scoreStr1=new Array(); 去掉,因为var scoreStr1=scoreStr.split(";");执行后scoreStr1已经是数组了,在用var scoreStr1=new Array();就相当于将scoreStr1初始化为一个新空数组。

查看完整回答
反对 回复 2016-08-05
?
luofuxiang

TA贡献34条经验 获得超34个赞

var scoreStr1=scoreStr.split(";")这句在声明scoreStr1的同时已经将其实例化了,如果再用new Array()将其实例化,scoreStr1将指向一个空的Array对象,所以输出的结果是0。楼主的代码中只需要将var scoreStr1=new Array()这句注释掉就可以得到期望的结果了。

var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
 var scoreStr1=scoreStr.split(";");
 
 
 var sum=0;
 //var scoreStr1=new Array();<==注释掉这句
 
 for(var i=0;i<scoreStr1.length;i++){
sum+= parseInt(scoreStr1[i].substr(scoreStr1[i].indexOf(":")+1));
}
  //从数组中将成绩撮出来,然后求和取整,并输出。
  document.write("总分是:"+sum);


查看完整回答
1 反对 回复 2016-08-04
?
Lion_Leo

TA贡献4条经验 获得超0个赞

在for处设一下断点,很快就会发现问题。

查看完整回答
反对 回复 2016-08-05
  • 3 回答
  • 0 关注
  • 2064 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信