如何根据不同排序顺序的多个值对json对象进行排序

How to sort json object based on multiple values with different sorting order

本文关键字:排序 json 对象 何根 顺序      更新时间:2024-02-15

我有以下JSON对象

   var data1 =  [
    {id: "1", name: "b", lastname: "y", marks: "10"},
    {id: "1", name: "a", lastname: "x", marks: "20"},
    {id: "2", name: "a", lastname: "x", marks: "30"},
    {id: "2", name: "b", lastname: "x", marks: "40"},
    {id: "2", name: "c", lastname: "z", marks: "60"},
    {id: "3", name: "d", lastname: "x", marks: "50"},
    {id: "3", name: "a", lastname: "c", marks: "70"}    
  ];

我根据不同的条件对这个对象进行什么排序,比如-

第一个按名称排序的asc顺序

按降序中的姓氏对结果进行排序

比按降序中的标记对搜索进行排序

字段及其订单类型由网页动态生成。

***这里的排序错误和它们的e类型是不固定的,它可能是任何类似于name asc、marks asc、lastname desc或marks desc、lastname desc、name asc 的东西

有人能帮我推荐任何jquery、java脚本插件或函数吗?

如果实现自己的自定义排序函数,则可以使用sort来实现这一点。类似这样的东西:

function sortFunc(a, b) {
    if (a.name < b.name)  return -1;
    else if (a.name > b.name)  return 1;
    else {
        if (a.lastname < b.lastname)  return 1;
        else if (a.lastname > b.lastname)  return -1;
        else {
            if (a.marks < b.marks) return 1;
            else if (a.marks > b.marks) return -1;
        }
        return 0;
    }
}
console.log(data1.sort(sortFunc));

小提琴示例