将等级作为对象值从最高到最低排序
Rank grades as object values from highest to lowest
我想从每个对象中获取名字和gwa,然后根据他们的gwa 从高到低排列它们。我得到了 "getting the first name and 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);
我想从每个对象中获取名字和gwa,然后根据他们的gwa 从高到低排列它们。我得到了 "getting the first name and 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);