var scors=new Array(); var sum=0; document.write(scoreStr.length); for(i=0;i<(scoreStr.length*10/6);i++){ scors[i]=scoreStr.substr(3,2); scoreStr=scoreStr.substring(6,scoreStr.length-1) document.write(scors[i]+"<br/>"); sum=sum+parseInt(scors[i]);
....
为什么要scoreStr.length*10/6,有很多步骤跟我的思维完全不一样,我测试了以下你的程序,感觉怪怪的,尤其是循环长度的问题
正常思维:截取每个数字,转化然后加起来
问下你可以注释一下你的代码?让我好理解下
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; var scors = new Array(); var sum = 0; document.write(scoreStr.length + "<br/>"); //说明有十组数,十个成绩 var len = (scoreStr.length+1) / 6; var num = 0; for (var i = 0; i < len; i++) { //截取每个成绩,转化加起来 sum += parseInt(scoreStr.substr(3+num, 2)); //跟随规律,每次都跳转到数字的那个下标 num += 6; } //从数组中将成绩撮出来,然后求和取整,并输出。 document.write(weekDay[myDate.getDay()] + "--班级总分为:" + sum);
给个参考:
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var ss=scoreStr.split(";");
var ss2=new Array();
var sum=0;
// document.write(ss);
for(var i in ss){
ss2[i]=parseInt(ss[i].substr(3));
sum=sum+ss2[i];
}
//从数组中将成绩撮出来,然后求和取整,并输出。
document.write("班级总分为:"+parseInt(sum/10));
思维不一样:scoreStr.length*10/6;给个参考:
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; var scoreArray = scoreStr.split(";"); var sum = 0; for (var x in scoreArray) { sum += parseInt(scoreArray[x].substr((scoreArray[x].indexOf(":") + 1), 2)); } //从数组中将成绩撮出来,然后求和取整,并输出。 document.write(weekDay[myDate.getDay()] + "--班级总分为:" + sum);