请教Javascript以下代码为何求不出平均值?
PHPz
PHPz 2017-04-11 11:00:48
[JavaScript讨论组]

题目:

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

求班级的平均分数。

在浏览器中显示平均值为NaN,请教问题出在哪里?



var newarr=sorceStr.split(";");
    var zf=0;
    var pj=0;
    for(var i=0;i
PHPz
PHPz

学习是最好的投资!

全部回复(6)
巴扎黑
var sourceStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

var array = sourceStr.split(';').map(u => u.split(':')[1]);
var average = array.reduce((r, u) => +u + +r) / array.length;

console.log(average);
伊谢尔伦

var index=newarr.indexOf(":");这句有错误
==>
var index=newarr[i].indexOf(":");

var sorceStr = "小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var newarr=sorceStr.split(";");
var zf=0;
var pj=0;
for(var i=0;i<newarr.length;i++) {
    var index = newarr[i].indexOf(":");
    zf += parseInt(newarr[i].substr(index + 1, 2));
}
pj=zf/newarr.length;
pj=Math.floor(pj);
console.log("&nbsp;"+"班级的平均分数是:"+pj);

var sorceStr = "小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var newarr=sorceStr.split(";");
    var zf=0;
    var pj=0;
    for(var i=0;i<newarr.length;i++){
        zf += parseInt(newarr[i].split(':')[1],10);
    }
        
pj=zf/newarr.length;
pj=Math.floor(pj);
console.log("&nbsp;"+"班级的平均分数是:"+pj);
阿神

楼主神代码,循环里面,index of前面少了索引号啦

巴扎黑
function ava(str){
  var newstr=str.split(";");
  var average = 0;
  
  for(var i in newstr){
    average += newstr[i].split(':')[1]*1;
  }
  return average/newstr.length;
}

var sorceStr = "小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
ava(str);
高洛峰

二楼正解,缺少索引[i]

怪我咯
var list = sorceStr.match(/\d+/g);

var average = list.reduce(function(l,r){
    return ~~r + ~~l;
})/list.length;

console.log('平均分数为:',average);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号