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初始化为一个新空数组。
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);
添加回答
举报
0/150
提交
取消