努力学习碳
2019-11-08 23:26
<script type="text/javascript">
var mydate=new Date;
var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
document.write(mydate.getFullYear()+"年"+(mydate.getMonth()+1)+"月"+mydate.getDate()+"日"+weekday[mydate.getDay()]+"<br />");
//通过javascript的日期对象来得到当前的日期,并输出。
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var score=scoreStr.split(':');//分割字符
document.write("1."+score+"<br />");
var sum = 0;
var average= 0;
for( var i =0;i<score.length;i++ ){
var index = score[i].indexOf(':'); //返回":"字符串出现的位置
document.write(index+"<br />");
sum=sum+parseInt(score[i].substr(0,2));
}//sum+=i相当于sum=sum+i,即表示首先先计算sum和i的和,再将其和赋予给sum。
document.write(sum+"<br />");
average = Math.floor(sum/score.length);
document.write("--班级平均分为:"+average);
//从数组中将成绩撮出来,然后求和取整,并输出。
第一:var score=scoreStr.split(':');//分割字符 你两次都是。以:分割的,第一个直接改为 ; 也许是你打错了。
第二: 第一步非分割符以“;”执行的话 后面修改你的求和
sum=sum+parseInt(score[i].substr(3)); // sum=sum+parseInt(score[i].substr(0,2));【你原先获取的是底标0,2】,若你没修改第一步,你会发现你输出的内容中 第一个是小明,数据类型已经错误了。
整体就按照2步修改,就ok了。
你这列子:没注意细节,多多用document.write()以及console.log()输出测试报错数据,这样你基本不会出什么问题了
在 document.write("1."+score+"<br />");这一行,可以发现你的score内的内容是这样的:
[小明, 87;小花, 81;小红, 97;小天, 76;小张, 74;小小, 94;小西, 90;小伍, 76;小迪, 64;小曼, 76]
可以看到,在第一个元素“小明”里面,是没有成绩的。
因此,你后面想取parseInt(score[i].substr(0,2))的时候,当i=0,也就是“小明”这个元素的时候,他的substr(0,2)是汉字而不是数字。数字加汉字,结局当然就悲催了。
改的方法很简单,把 for( var i =0;i<score.length;i++ ) 改成 for( var i =1;i<score.length;i++ ) 即可。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题