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

分割字符串得到个人数据的数组,提取子字符串转化为整数,求出平均数。无法正确实现?

<!DOCTYPE  HTML>
<html >
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>系好安全带,准备启航</title>
   <script type="text/javascript">
     //通过javascript的日期对象来得到当前的日期,并输出。
     var mydate = new Date();
  var myyear = mydate.getFullYear();  //年
  var mymonth = mydate.getMonth() + 1;  //月
  var myday = mydate.getDate();  //日
  var myweek = mydate.getDay();  //星期
     var myweek2 = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
  document.write(myyear + "年" + mymonth + "月" + myday + "日 " + myweek2[myweek]);
 
     //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
     var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
     var personInfo = scoreStr.split(";");    
     
     //从数组中将成绩撮出来,然后求和取整,并输出。
     for(var n = 0; n < personInfo.length; n++){
var personScore, sum=0;
personScore = parseInt(personInfo[n].substring(personInfo[n].(indexOf(":")+1)));
sum += personScore[n];
  }
  var aver = Math.round(sum/personInfo.length);
 document.write("--平均分是:" + aver);
   </script>
 </head>
 <body>
</body>
</html>


正在回答

3 回答

<!DOCTYPE  HTML>

<html >

<head>

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

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


<script type="text/javascript">


 var mydate=new Date();//通过javascript的日期对象来得到当前的日期,并输出。

  var myyear=mydate.getFullYear();

  var mymonth=mydate.getMonth();

  var myday=mydate.getDate();

  var mynum=mydate.getDay();

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

  document.write(myyear+"年"+mymonth+"月"+myday+"日"+" "+myweek[mynum]+"<br>");

  

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

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

  var myarr=new Array();

  myarr=scoreStr.split(";");

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

  var sum=0;

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

  sum=sum+parseInt(myarr[i].substr(3,2));

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

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

  var aver=Math.round(sum/myarr.length);

  document.write(aver);

</script>

</head>

<body>

</body>

</html>


0 回复 有任何疑惑可以回复我~
<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</title>

<script type="text/javascript">
//计算平均分数
function getAverage(sumNum,aCount){
    return sumNum/aCount;
}
//计算分数的总和
function getSumByArr(arr){
    var ret = 0;
    for(var i=0;i<arr.length;i++){
        var obj = arr[i].split(":")[1];
        ret = ret + parseInt(obj);
    }
    return ret;
}
 var mydate=new Date();//通过javascript的日期对象来得到当前的日期,并输出。
  var myyear=mydate.getFullYear();
  var mymonth=mydate.getMonth();
  var myday=mydate.getDate();
  var mynum=mydate.getDay();
  var myweek=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
  document.write(myyear+"年"+mymonth+"月"+myday+"日"+" "+myweek[mynum]+"<br>");
  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var scoreArr = scoreStr.split(";");
  //从数组中将成绩撮出来,然后求和取整,并输出。
  var sumObj = getSumByArr(scoerArr);
  document.write(getAverage(sumObj,scoreArr.length));
</script>
</head>
<body>
</body>
</html>

我是这样写的 感觉把一些代码拆成一个个函数,这样思路会比较清晰

0 回复 有任何疑惑可以回复我~
<!DOCTYPE  HTML>
<html >
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>系好安全带,准备启航</title>
   <script type="text/javascript">
     //通过javascript的日期对象来得到当前的日期,并输出。
     var mydate = new Date();
 	var myyear = mydate.getFullYear();  //年
 	var mymonth = mydate.getMonth() + 1;  //月
 	var myday = mydate.getDate();  //日 
 	var myweek = mydate.getDay();  //星期
     var myweek2 = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
 	document.write(myyear + "年" + mymonth + "月" + myday + "日 " + myweek2[myweek]);
 
     //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
     var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
     var personInfo = scoreStr.split(";");    
     //document.write(personInfo+"<br>");
     //从数组中将成绩撮出来,然后求和取整,并输出。
    var sum=0;
     for(var n = 0; n < personInfo.length; n++){
      var personScore;
      personScore = parseInt(personInfo[n].substr(personInfo[n].indexOf(":")+1));
      sum += personScore;
    }
    var aver = Math.round(sum/personInfo.length);
    document.write("--平均分是:" + aver);
   </script>
 </head>
 <body>
</body>
</html>

嗯,有点遗憾,有几处错误,sum要在循环外面赋值,在for里面赋值会导致每次循环都归零的;

是(personInfo[n].indexOf.()+1),整体加1,你那样写是没有含义的

personScore初始不是一个数组,而是每次循环得到个人分数(函数内的中间变量),不能加【n】,在你这里只是起到传递分数值给sum的作用

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

HenryChou

下面有很多同学的代码,遇到调不出的代码就对照他们的检查,我也是这样做的,共同加油:)
2016-02-01 回复 有任何疑惑可以回复我~
#2

Just90 提问者

嗯嗯,我自己也发现错误了!
2016-02-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

分割字符串得到个人数据的数组,提取子字符串转化为整数,求出平均数。无法正确实现?

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