如何通过三个不同的字段对javascript数组进行排序?

时间:2016-04-06 14:48:21

标签: javascript arrays sorting

我的Javascript数组包含字段title,modifiedDate和seq

我已经有了这种排序功能:

            self.tests.sort(function (a, b) {
                var diff = a.title.localeCompare(b.title);
                var aDate = a.modifiedDate || "";
                var bDate = b.modifiedDate || "";
                return diff == 0 ? bDate.localeCompare(aDate) : diff;
            });

现在我需要将其扩展为按

排序
  1. 标题
  2. modifiedDate
  3. SEQ
  4. 我只见过这样的两个字段。如何扩展它以对seq字段进行排序?

1 个答案:

答案 0 :(得分:4)

您可以将它们与逻辑OR ||链接在一起,因为在每个相等的情况下,它都会进行下一次比较。

假设,seq是一个数字。

self.tests.sort(function (a, b) {
    var aDate = a.modifiedDate || "",
        bDate = b.modifiedDate || "";
    return a.title.localeCompare(b.title) || bDate.localeCompare(aDate) || a.seq - b.seq;
});