按固定值排序对象

Har*_*rry 1 javascript sorting

说我有这个:

["完成","等待","忙碌"]

我如何排序,以便订单繁忙,待定,完成?

我将有一个对象列表,每个对象的状态值为done,pending和busy.所以可能有100个.

我不确定这是如何工作的,因为它不是按字母顺序或逻辑的,而是基于用户偏好.

我希望他们永远是我的那份订单.

我用javascript对数组进行排序.

Checksum: "e791e37b19187712fc95078e8fd2b367"
FileLastWriteTimeUtc: "2013/06/07 01:22:40 PM"
FileName: "1.jpg"
PartsSuccess: 0
PartsTotal: 0
Path: "\Image Content Tests"
Size: 4174754
Status: "Done"
Run Code Online (Sandbox Code Playgroud)

谢谢

Wou*_*erH 5

您可以为每个值分配排序顺序.这种排序顺序是一个数字,完全取决于你做什么.然后按实际要排序的值的排序顺序排序.一个例子:

var data = [
    {
        id: 1,
        state: "Pending"
    },
    {
        id: 2,
        state: "Done"
    },
    {
        id: 3,
        state: "Busy"
    }
];

var sortOrders = {
    "Done": 1,
    "Busy": 2,
    "Pending": 3
};

data.sort(function(a, b) {
    return sortOrders[a.state] - sortOrders[b.state];
});
Run Code Online (Sandbox Code Playgroud)

演示:http://ideone.com/qsz52d