Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按固定值对对象排序_Javascript_Sorting - Fatal编程技术网

Javascript 按固定值对对象排序

Javascript 按固定值对对象排序,javascript,sorting,Javascript,Sorting,假设我有一个 [完成、等待、忙碌] 我如何排序,以便订单繁忙、待定、完成 我将有一个对象列表,每个对象的状态值为done、pending和busy。所以可能有100个 我不知道这是怎么回事,因为它不是按字母顺序排列的,也不是按逻辑排列的,它是基于用户的偏好 我希望他们永远是我的命令 我正在使用javascript对数组进行排序 Checksum: "e791e37b19187712fc95078e8fd2b367" FileLastWriteTimeUtc: "2013/06/07 01:22:

假设我有一个

[完成、等待、忙碌]

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

我将有一个对象列表,每个对象的状态值为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"

谢谢

您为每个值指定了排序顺序。这种排序顺序是一个数字,完全取决于您如何制作它们。然后按照实际要排序的值的排序顺序进行排序。例如:

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];
});

演示:

为每个值分配排序顺序。这种排序顺序是一个数字,完全取决于您如何制作它们。然后按照实际要排序的值的排序顺序进行排序。例如:

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];
});

演示:

我假设您有如下对象

[
{
    'name' : 'Sending mail to manager',
    'status': 'pending'
},

{
    'name' : 'Talking to girl friend',
    'status': 'busy'
},

{
    'name' : 'Breakfast',
    'status': 'done'
},
]
我建议你使用


我假设你有这样的物体

[
{
    'name' : 'Sending mail to manager',
    'status': 'pending'
},

{
    'name' : 'Talking to girl friend',
    'status': 'busy'
},

{
    'name' : 'Breakfast',
    'status': 'done'
},
]
我建议你使用


假设对象列表是数组,请使用自定义排序函数:

sortMe.sort(function (a, b) {
    var statusA = ['Busy', 'Pending', 'Done'].indexOf(a.Status),
        statusB = ['Busy', 'Pending', 'Done'].indexOf(b.Status);
    return statusA - statusB;
});
其中sortMe类似于以下内容:

var sortMe = [{
    "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"
},{
    "Checksum": "e791e37b19187712fc95078e8fd2b367",
    "FileLastWriteTimeUtc": "2013/06/07 01:22:40 PM",
    "FileName": "2.jpg",
    "PartsSuccess": 0,
    "PartsTotal": 0,
    "Path": "\Image Content Tests",
    "Size": 4174754,
    "Status": "Busy"
},{
    "Checksum": "e791e37b19187712fc95078e8fd2b367",
    "FileLastWriteTimeUtc": "2013/06/07 01:22:40 PM",
    "FileName": "3.jpg",
    "PartsSuccess": 0,
    "PartsTotal": 0,
    "Path": "\Image Content Tests",
    "Size": 4174754,
    "Status": "Pending"
}];

假设对象列表是数组,请使用自定义排序函数:

sortMe.sort(function (a, b) {
    var statusA = ['Busy', 'Pending', 'Done'].indexOf(a.Status),
        statusB = ['Busy', 'Pending', 'Done'].indexOf(b.Status);
    return statusA - statusB;
});
其中sortMe类似于以下内容:

var sortMe = [{
    "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"
},{
    "Checksum": "e791e37b19187712fc95078e8fd2b367",
    "FileLastWriteTimeUtc": "2013/06/07 01:22:40 PM",
    "FileName": "2.jpg",
    "PartsSuccess": 0,
    "PartsTotal": 0,
    "Path": "\Image Content Tests",
    "Size": 4174754,
    "Status": "Busy"
},{
    "Checksum": "e791e37b19187712fc95078e8fd2b367",
    "FileLastWriteTimeUtc": "2013/06/07 01:22:40 PM",
    "FileName": "3.jpg",
    "PartsSuccess": 0,
    "PartsTotal": 0,
    "Path": "\Image Content Tests",
    "Size": 4174754,
    "Status": "Pending"
}];

您能从对象列表中发布一个示例对象吗?您需要编写自定义比较函数,并将其与Array.sort func结合使用。有关排序函数的更多信息:添加了一个对象,以便状态可以完成、忙和挂起。您可以从对象列表中发布一个示例对象吗?您需要编写自定义比较函数,并将其与Array.sort func结合使用。关于排序功能的更多信息:添加了一个对象,这样状态就可以完成了,忙碌和等待,简单。我是朝这个方向想的!谢谢,这会奏效的啊,很简单。我是朝这个方向想的!谢谢,这会有用的