猿问
下载APP

如何对求出给定数组中的平均成绩,并打印出最高成绩的人和成绩

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

var score=eval(("[{"+scoreStr+"}]").replace(/;/g,"},{"));

//希望寻着这个思路往下,希望不要用到显示循环

慕标6419154
浏览 7642回答 25
25回答

李晓健

var scoreStr = "小2明:87;小花:81;小红:97;小1:76;小99:74;小2:94;小西:90;小伍:76;小迪:64;小曼:76"; //将字符串组装成数组 var scoreArr = scoreStr.split(';'); //对数组进行排序  将最高分排到最前面 scoreArr.sort(function (user,user2) {     var score = parseInt(user.split(':')[1]);     var score2 = parseInt(user2.split(':')[1]);     return score2 - score; }); //对分数求和 var totalScore = scoreArr.reduce(function (total,user) {     var score  = parseInt(user.split(':')[1]);     return total+score; },0) //取出分数最高的人的信息 var maxUserArr  = scoreArr[0].split(':'); alert('平均成绩是:'+totalScore/scoreArr.length+' ;最高分数的人是'+maxUserArr[0]+',他的分数是:'+maxUserArr[1]);你这个不让用循环的要求有点过了,希望这样你能看懂如果解决了你的问题,请记得采纳

看爱狮虎

阿斯顿飒飒的

落叶1111

你的eval写法是错的,还有不用到循环只有一种解决方法了,那就是js自带的和循环有关的东西,比如sort排序之类呢,建议自己研究,
打开App,查看更多内容
随时随地看视频慕课网APP