如何根据多个条件对对象进行排序?

时间:2019-05-15 15:58:03

标签: javascript arrays sorting

我想首先根据标签是否存在对对象进行排序,然后对计数进行排序。我的数据看起来像这样:

[
    {
        count: "2",
        tags: ["red", "green"]
    },
    {
        count: "3",
        tags: ["red", "green", "blue"]
    },
    {
        count: "6",
        tags: ["green"]
    },
    {
        count: "7",
        tags: ["green", "blue"]
    },
    {
        count: "1",
        tags: ["green", "blue"]
    },
    {
        count: "2",
        tags: ["red", "blue"]
    }
]

我希望结果按降序对计数进行排序,但优先使用标签“ red”对它们进行排序,因此结果应如下所示:

[
    {
        count: "3",
        tags: ["red", "green", "blue"]
    },
    {
        count: "2",
        tags: ["red", "blue"]
    },
    {
        count: "2",
        tags: ["red", "green"]
    },
    {
        count: "7",
        tags: ["green", "blue"]
    },
    {
        count: "6",
        tags: ["green"]
    },
    {
        count: "1",
        tags: ["green", "blue"]
    }
]

到目前为止,这是我的代码:

data.sort(function(a, b) {
    if (a.tags.includes("red")) return -1;
});

我该如何扩展以按计数排序?

0 个答案:

没有答案