sort函数实现多条件排序

Posted sefaultment

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sort函数实现多条件排序相关的知识,希望对你有一定的参考价值。

js的sort方法,我们一般传入一个回调用于单排序,也就根据某一个条件排序,那么一个场景需要多条件排序(多重排序),我们怎么处理呢?

如下例子,我们按学生的总分排序,如果总分相等,我们再按照语文成绩排序。
var jsonStudents = [
    { name: "Dawson", totalScore: "197", Chinese: "100", math: "97" },
    { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "97" },
    { name: "LiLei", totalScore: "185", Chinese: "88", math: "97" },
    { name: "XiaoMing", totalScore: "196", Chinese: "96", math: "100" },
    { name: "Jim", totalScore: "196", Chinese: "98", math: "98" },
    { name: "Joy", totalScore: "198", Chinese: "99", math: "99" }
];

jsonStudents.sort(function(a, b) {
    var value1 = a.totalScore,
        value2 = b.totalScore;
    //总分相同 
    if (value1 === value2) {
        // 按语文分数降序排序
        return b.Chinese - a.Chinese;
    }
    // 总分不同,降序排序
    return value2 - value1;
});

console.log("jsonStudents :", jsonStudents);

关键点在于sort回调如何定义排序规则

以上是关于sort函数实现多条件排序的主要内容,如果未能解决你的问题,请参考以下文章

Vector容器 二维数组sort()排序

1356. 根据数字二进制下 1 的数目排序

如何用sort对结构体进行排序

python对目录下的文件进行 多条件排序

排序算法: 归并排序

利用JAVA的BitSet实现数组排序