我想从每个对象中获取名字和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);
最佳答案
你可以试试下面的代码:
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);
关于javascript - 将等级作为对象值从最高到最低排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50575397/