为了账号安全,请及时绑定邮箱和手机立即绑定

指导下啊啊

<script>

   var mydate = new Date();

   var myyear = mydate.getFullYear();

   var mymonth = mydate.getMonth()+1;

   var myday = mydate.getDate();

   var myweek = mydate.getDay(); //获取数值0~6

   var mynum = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];//0~6检索

   var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

   var myarr = scoreStr.substring(3); //去除小明:字符串

   var mysum = myarr.split(':'); //转为数组

   var sum = 0;

   var av =0;

   for(var i=0;i<mysum.length;i++){

   sum+=parseInt(mysum[i]);

   }

   av = sum/mysum.length;

   av = Math.floor(av);

   document.write(myyear+"年"+mymonth+"月"+myday+"日"+" "+mynum[myweek]+" "+"班级平均分数:"+av);

   </script>


正在回答

2 回答

var myarr = scoreStr.substring(3); //去除小明:字符串

个人觉得错误出现在这一句,其结果可以用输入语句验证

document.write(myarr + "<br/>");

结果为

81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76

还是一个字符串!!!

这直接导致下一个转化数组语句和原意有所出入

var mysum = myarr.split(':'); //转为数组

同样可以使用上述输出语句验证,导致数组结果为

81;小红,97;小天,76;小张,74;小小,94;小西,90;小伍,76;小迪,64;小曼,76

这里没有将分数筛选出来!!!

这直接导致接下来的代码全部错误。

其根本在于

"小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"

是一个字符串,没办法直接筛选出分数,所以需要先将该字符串分割为二维数组,再对二维数组进行处理。

0 回复 有任何疑惑可以回复我~

   var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";


   var myarr = scoreStr.substring(9); //去除小明:字符串

document.write(myarr + "<br/>");

   var mysum = myarr.split(':'); //转为数组

document.write("长度" + mysum.length+ "<br/>");

   var sum = 0;


   var av =0;


   for(var i=0;i<mysum.length;i++){


document.write(mysum[i] + "<br/>");

document.write(parseInt(mysum[i]) + "<br/>");

   sum+=parseInt(mysum[i]);


   }


   av = sum/mysum.length;


   av = Math.floor(av);

在减少字符串,拆分成数组和循环取整数值的过程中加入一些输出语句可以更好的了解运行情况.这个例子用冒号分割字符串或者用分号分割字符串.相应的处理方法是不同的. .而你原先[ var myarr = scoreStr.substring(3); //去除小明:字符串 ] 这句只是去掉了"小明:"3个字符 并没有真正去除小明的分数87. 最终计算的还是11个人的平均分

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

指导下啊啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信