慕勒2515773
2016-05-11 20:20
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var score=new Array();
var score=parseInt(scoreStr.substr(scoreStr.indexOf(":")+1,2));
var n=score.length;
for(var j=0;j<n;j++)
{ var sum=0;
sum=sum+score[j];
document.write(score[j]);}
document.write(sum/n);
不出成绩,求大神指点错在哪里
indexOf() 返回的是首次出现的位置,所以你scoreStr.substr(scoreStr.indexOf(":")只不过是一个固定值,并不是你想象的取了所有的“:”所在的后面的值,并且生成了列表。
我修改了你的代码:
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var arrStr = scoreStr.split(";")
var score=new Array();
for( var i = 0; i < arrStr.length; i++){
score[i] = parseInt(arrStr[i].substr(scoreStr.indexOf(":")+1,2));
}
var n=score.length;
var sum=0;
for(var j=0;j<n;j++){
sum=sum+score[j];
document.write(score[j]+"<br />");
}
document.write(sum/n);
script type="text/javascript">
//通过javascript的日期对象来得到当前的日期,并输出。
var a=new Date();
var b=['一月','二月','三月','四月','5月'];
var c=['星期一','星期二','星期三','星期四'];
document.write(a.getFullYear()+'年'+b[a.getMonth()]+a.getDate()+'日'+c[a.getDay()]);
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var d=new Array();
d=scoreStr.split(';');
var e=new Array();
var sum=0;
for(i=0;i<d.length;i++){
e[i]=d[i].substr(3,4);
sum=sum+parseInt(e[i]);
}
document.write(sum/d.length);
//从数组中将成绩撮出来,然后求和取整,并输出。
你这个第三行,后边indexOf(":")只是返回出现:的位置,应该会返回一串越来越大的数字,因为这个数组里边就一大项,可先用split()将不同名字的人分割出来返回出一个数组。
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var arrStr = new Array();
arrStr = scoreStr.split(";");
var sum = 0;
for( var i = 0; i < arrStr.length; i++){
sum = sum + parseInt(arrStr[i].substring(3));
}
JavaScript进阶篇
468788 学习 · 22582 问题
相似问题