javascript - 将等级作为对象值从最高到最低排序

标签 javascript arrays sorting object rank

我想从每个对象中获取名字和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/

相关文章:

android - 如何通过将其他对象字段保存为索引来按对象字段对 MutableMap 进行排序?

javascript - Backbone.js View 中不包含模型属性

javascript - 替代嵌套在另一个表单中的 Ajax 上传表单

JavaScript/AngularJS : How to compare Object element equality in Array?

javascript - 您可以在 Javascript 的数组中一次搜索 2 个值吗

c++ - 指数树的实现

javascript - 导航栏标题中的 Bootstrap 汉堡包图标动画

javascript - 将 iCheck(jQuery 插件)应用于动态创建的复选框

arrays - Delphi 中将数组转换为 const 数组

arrays - Fortran 没有给出数组分配错误