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

有没有考满分的情况 也就是三位数的时候??

有没有考满分的情况 也就是三位数的时候??

正在回答

5 回答

跟多少位数没关系,你像这样分隔

var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var scoreA = scoreStr.split(';');
var sum = 0;
for(var i = scoreA.length; i--;){
	sum += Number(scoreA[i].split(':')[1]);
}
console.log(sum);


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

xiaohuohuo 提问者

非常感谢!
2016-01-29 回复 有任何疑惑可以回复我~

呃....受教了,谢~使..>

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

想了下。用sub提取不如用split二次分割“:”。取第二个字符串转化成整数来写。

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

不论是.substr()h还是.substring()都可以从第三位开始提取成绩,后面的范围可以不填,默认到底。

使用提取出来的不论是2位数还是3位数。全部加起来除以.length数组长度。然后.floor()向下取整。得到平均值

我觉得分数三位数没什么。怕名字超过2位数啊。代码还需要相应调整。


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

  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var myarr = scoreStr.split(";");
  document.write(myarr[0]+"<br/>");//验证是否分割正确
  var sum=0,avg=0;                             //初始化变量

  // 第一版本:不够灵活的方法,遇到分数为3位数的情况下会计算错误

  /*for(var i=0;i<myarr.length;i++)  {
      sum=sum+ parseInt(myarr[i][3])*10 + parseInt(myarr[i][4]);
      avg=Math.round(sum/myarr.length);
  }*/

  //第二版本,不管分数有几位都可以计算,不会出错
   for(var i=0;i<myarr.length;i++)
  {
    sum=sum+ parseInt(myarr[i].substring(myarr[0].indexOf(":")+1)+"<br>");
    avg=Math.round(sum/myarr.length);
   }
   document.writeln(sum+"<br/>")
   document.writeln(avg+"<br/>")

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

举报

0/150
提交
取消

有没有考满分的情况 也就是三位数的时候??

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