使用jquery .sort()以自定义方式排序

时间:2016-01-18 13:16:12

标签: jquery

我有一份水果清单。

var fruits = ["Banana", "Orange", "Apple", "Mango", "Pineapple"];

我想用jQuery .sort()对它们进行排序,给出一组应该放在第一位的值:

var showFirst = ["Banana", "Apple", "Orange"]

其余的水果应该以任何特定的顺序添加到最后。

我可以使用fruits.sort()来使它看起来像这样吗?

    fruits.sort(function (a, b) {
        var customOrder = ["Banana", "Apple", "Orange"]
        {
            return ?;
        };
    });

结果应该是: fruits = ["Banana", "Apple", "Orange" "Mango", "Pineapple"];

2 个答案:

答案 0 :(得分:2)

使用sort,您只需与indexOf ab进行比较,但您必须分别检查-1。通过反转showfirst数组,您可以直接使用sort:

var fruits = ["Banana", "Orange", "Apple", "Mango", "Pineapple"];

var showFirst = ["Banana", "Apple", "Orange"];
var sorter = showFirst.reverse();
fruits.sort(function (a, b) {
        return sorter.indexOf(b) -  sorter.indexOf(a);
});

Fiddle

答案 1 :(得分:0)

如果你说,在前三个之后的任何订单,那么你可以这样做:

shift

所以上面的代码已完整记录。