如何基于具有不同排序顺序的多个值对JSON对象进行排序

Anu*_*rma 5 javascript sorting jquery json

我有以下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"}    
  ];
Run Code Online (Sandbox Code Playgroud)

我如何根据不同的条件对这个对象进行排序,例如-

首先按名字升序排序

而不是按姓氏顺序对结果进行排序

而不是按desc顺序按标记排序

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

***此处排序字段和主题类型不固定,可能是名称asc,标记asc,姓氏desc或标记desc,姓氏desc,名称asc之类的东西

谁能帮我推荐任何jquery,java脚本插件或函数?

Ror*_*san 2

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));
Run Code Online (Sandbox Code Playgroud)

小提琴示例