Javascript 使用map/filter/reduce根据百分比对用户进行排名
我想根据用户的分数百分比显示用户的所有详细信息,并为他们分配等级。我在这里得到了所有的细节。如何排序和打印用户喜欢的内容Javascript 使用map/filter/reduce根据百分比对用户进行排名,javascript,Javascript,我想根据用户的分数百分比显示用户的所有详细信息,并为他们分配等级。我在这里得到了所有的细节。如何排序和打印用户喜欢的内容 Tom has scored marks in Science - 80 Maths - 89 English - 91 and secured 86.67 % and his rank is 1. 类似地,students对象中的每个用户都是 var students = [{ name: "John", age: 20, id: 1, marks:
Tom has scored marks in Science - 80 Maths - 89 English - 91 and secured 86.67 % and his rank is 1.
类似地,students对象中的每个用户都是
var students = [{
name: "John",
age: 20,
id: 1,
marks: {
science: 80,
maths: 90,
english: 67
}
}, {
name: "Jack",
age: 22,
id: 3,
marks: {
science: 56,
maths: 91,
english: 81
}
}, {
name: "Robert",
age: 23,
id: 2,
marks: {
science: 75,
maths: 79,
english: 87
}
}, {
name: "Tom",
age: 20,
id: 4,
marks: {
science: 80,
maths: 89,
english: 91
}
}];
var inDetail = getPercentageAndRank(students);
function getPercentageAndRank(students) {
var details = students.map(function(getMarks) {
console.log(((getMarks.marks.english + getMarks.marks.maths + getMarks.marks.science) / 3));
return {
name: getMarks.name,
science: getMarks.marks.science,
maths: getMarks.marks.maths,
english: getMarks.marks.english,
percentage: ((getMarks.marks.english + getMarks.marks.maths + getMarks.marks.science) / 3)
};
})
return details.map(function(gg) {
return [
gg.name,
"has scored marks in Science -",
gg.science,
"Maths -",
gg.maths,
"English -",
gg.english,
"and secured", (gg.percentage).toFixed(2),
"%."
].join(' ');
});
}
输出:
["John has scored marks in Science - 80 Maths - 90 English - 67 and secured 79.00 %.",
"Jack has scored marks in Science - 56 Maths - 91 English - 81 and secured 76.00 %.",
"Robert has scored marks in Science - 75 Maths - 79 English - 87 and secured 80.33 %.",
"Tom has scored marks in Science - 80 Maths - 89 English - 91 and secured 86.67 %."]
这里我得到的输出不是根据上面所说的。如何获取上述内容。您需要添加:
.sort(function(a, b) {
return b.percentage - a.percentage;
});
检查此解决方案
var学生=[{
姓名:“约翰”,
年龄:20,,
id:1,
标记:{
科学:80,
数学:90,
中文:67
}
}, {
姓名:“杰克”,
年龄:22,,
id:3,
标记:{
科学:56,
数学:91,
中文:81
}
}, {
姓名:“罗伯特”,
年龄:23,,
id:2,
标记:{
科学:75,
数学:79,
中文:87
}
}, {
姓名:“汤姆”,
年龄:20,,
id:4,
标记:{
科学:80,
数学:89,
中文:91
}
}];
var inDetail=getPercentageAndRank(学生);
函数getPercentageAndRank(学生){
var details=students.map(函数(getMarks){
//log((getMarks.marks.english+getMarks.marks.math+getMarks.marks.science)/3);
返回{
名称:getMarks.name,
科学:getMarks.marks.science,
数学:获得分数。分数。数学,
英语:getMarks.marks.english,
百分比:((getMarks.marks.english+getMarks.marks.math+getMarks.marks.science)/3),
排名:0
};
}).排序(功能(a、b){
返回b.百分比-a.百分比;
});
对于(变量i=0;i console.log(inDetail)你应该自己做作业,其实这不是家庭作业。。这是我的项目的一个要求,我对这个问题做了一些修改。你不需要像你之前提出的一个类似问题那样减少,因为你这次想要的输出是一个数组。。。但您需要排序