Ранжируйте оценки как значения объекта от самого высокого до самого низкого
Я хочу получить первое имя и gwa от каждого объекта, а затем расположить их в соответствии с их gwa от самого высокого до самого низкого. Я получил" получение первого имени и gwa " часть, но я не знаю, как организовать их в соответствии с их gwa.
Я пытался использовать sort (), но, похоже, я использовал его неправильно. Кто-нибудь может мне помочь?
const students = [
{
firstName: "Jose",
lastName: "Valenci",
gender: "male",
gwa: 98,
interest: "tennis"
},
{
firstName: "Debby",
lastName: "Smith",
gender: "female",
gwa: 96,
interest: "singing"
},
{
firstName: "Zaira",
lastName: "Pay",
gender: "female",
gwa: 93,
interest: "crafts"
}];
const basedOnGwa = students.map ((name,grade) => {
let{lastName} = name;
let {gwa} = grade;
grade = grade.sort(grade1 => {
let {gwa} = grade1;
return grade1;
});
return grade();
})
console.log(basedOnGwa);
1 ответ:
Вы можете попробовать следующий код:
const students = [ { firstName: "Jose", lastName: "Valenci", gender: "male", gwa: 98, interest: "tennis" }, { firstName: "Debby", lastName: "Smith", gender: "female", gwa: 96, interest: "singing" }, { firstName: "Zaira", lastName: "Pay", gender: "female", gwa: 93, interest: "crafts" }]; var basedOnGwa = students.reduce((arr,v,i)=>{ return arr.concat({'firstName':v.firstName,'gwa':v.gwa}); },[]); basedOnGwa.sort((a,b)=>{ return b.gwa - a.gwa; }) console.log(basedOnGwa);
Править
Если вы хотите использовать
map
вместоreduce
, Вы можете следовать следующему коду:
const students = [ { firstName: "Jose", lastName: "Valenci", gender: "male", gwa: 98, interest: "tennis" }, { firstName: "Debby", lastName: "Smith", gender: "female", gwa: 96, interest: "singing" }, { firstName: "Zaira", lastName: "Pay", gender: "female", gwa: 93, interest: "crafts" }]; var basedOnGwa = students.map((v,i)=>{ return {'firstName':v.firstName,'gwa':v.gwa}; }); basedOnGwa.sort((a,b)=>{ return b.gwa - a.gwa; }) console.log(basedOnGwa);