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

那种效率好点? 我自己写的是 进行2次分组 看人家是用的substr

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>系好安全带,准备启航</title>


<script type="text/javascript">


  //通过javascript的日期对象来得到当前的日期,并输出。

  var myDay = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

  var Day = new Date();

  var myday = Day.getDay();

  var MyDate = Day.getFullYear()+"年"+Day.getMonth()+"月"+Day.getDate()+"号";

  document.write("今天是:"+MyDate+myDay[myday]+"&nbsp;班级平均分是:");

  //document.write(MyDate);

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

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

  //scoreStr = scoreStr.split(":");

  

  //方法一

  

  //将学生信息分组

  var str = scoreStr.split(";");

  //document.write(str.length);

  //从数组中将成绩撮出来,然后求和取整,并输出。

  var sum = 0;

  //遍历每个学生姓名及分数

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

        //再次把姓名 分数 进行分组

var sStr = str[i].split(":");

//document.write(sStr[1]+"<br/>");

//获取分数

sum = parseInt(sStr[1])+sum;

if(i==9){

sum = sum/10;

document.write(Math.round(sum)+"<br/>");

}

     }

 

  //方法二

  var myArr = new Array();

  var Sum = 0;//存储总分

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

 //把查找出的 数字存入数组

 myArr[i] = parseInt(str[i].substr(3,2));

  //document.write(str[i].substr(3,2));

 }

  //document.write(myArr);

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

  Sum = myArr[i] + Sum;

 }

  document.write(Sum/10);

</script>

</head>

<body>

</body>

</html>


正在回答

1 回答

其实用substr也有问题比如用户名为张小红,三个字呢会出错?用:split切割也存在问题,太麻烦了。对于字符串处理一般用正则如下所示,你可以参考下:

var s= "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var res,sum=0,i=0, patt = /\d+/g;                                        //全局正则匹配
while ((res = patt.exec(s)) != null){sum +=(parseInt(res[0]));i++}       //求和,计数
console.log(sum/i);                                                      //得到均值结果


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

举报

0/150
提交
取消

那种效率好点? 我自己写的是 进行2次分组 看人家是用的substr

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