var date=new Date();
var week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
var weekday=date.getDay();
document.write(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日"+" "+week[weekday]+"<br>");
b= "小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;
小西:90;小伍:76;小迪:64;小曼:76"
var arr=b.split(";")
for(var i=0;i<arr.length;i++)
{
document.write(arr[i]+"<br/>");
}
var sum=0;
for (var i=0;i<arr.length;i++)
{
sum = sum + parseInt(arr[i].slice(3));
}
document.write("该班级的整数:"+sum+"<br/>"+"该班级的平均数:"+parseInt(sum/arr.length));
4 回答
Suber丶林
TA贡献75条经验 获得超180个赞
在
b= "小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
中,小花、小红、小天前面有个空格,所以你用slice(3)这个方法获取到的值是带着一个冒号“:”,所以parseInt()出来的值就是NaN。
方法一:去掉空格。
方法二:不要用slice(3),可以用正则,如下
// 如果使用parseInt方法的话,则需要带上第二个参数,比如parseInt(arr[i].replace(/[^\d]+/g, ''), 10); // 因为在IE8-用的JS标准是ES3,parseInt第二个参数默认是8,而IE9默认是10 sum = sum + (+arr[i].replace(/[^\d]+/g, ''));
bingovhh
TA贡献1条经验 获得超0个赞
确实是有空格,用slice不如用split
第16行取数的地方可以改为arr[i].split(":")[1],取得比较准确,不放心空格的话再trim一下
添加回答
举报
0/150
提交
取消