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

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

慕粉3361053
浏览 2065回答 3
3回答

snowmanJS

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

luofuxiang

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

Lion_Leo

在for处设一下断点,很快就会发现问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript