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

标签 javascript jquery json sorting

<分区>

我有以下 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"}    
  ];

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

先按名字升序排序

按姓氏降序排序结果

比按降序标记排序结果

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

*** 这里排序字段,它们的类型不固定,可能是 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));

Example fiddle

关于javascript - 如何根据具有不同排序顺序的多个值对 json 对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28625506/

相关文章:

javascript - 在函数内的 If 语句中插入 JQuery

jquery - 如何将滚动条添加到导航选项卡内容?

javascript - 将html表格导出到一列上有tinymce的word

javascript - 使用 javascript 或 jquery 垂直扩展弹出窗口

android - 在 android 中进行 Json 调用

php - 如何从 php/mysql 发布特定的 json 数据而不是所有数据

json - 发出命令 Grunt 时出错

javascript - 在 Wordpress 中使用 PJAX

Javascript 简单加法工具 - NaN

javascript - NodeJS 服务器 - 客户端对于响应状态 500 的行为有所不同,具体取决于响应正文