Оценка ранга как значения объекта от наивысшего к низшему - PullRequest
0 голосов
/ 29 мая 2018

Я хочу получить имя и 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 Ответ

0 голосов
/ 29 мая 2018

Вы можете попробовать следующий код:

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);
...