How to sort a json object based on multiple values โ€‹โ€‹with different sort order

I have the following JSON object

   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"}    
  ];

I need to sort this object based on another condition, for example -

sort first by name in ascending order

than the result of sorting by last name in desc order

than sort rsult by tags in desc order

Fields

and their order type is generated dynamically using a web page.

*** here sort feilds and type types are not fixed, it can be anything like the name asc, labels asc, lastname desc or labels desc, lastname desc, name asc

Can someone help me suggest any jquery, java script plugin or function?

+4
source share
1

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

0

All Articles