var data = [
{
id: 1,
state: "Pending"
},
{
id: 2,
state: "Done"
},
{
id: 3,
state: "Busy"
}
];
var sortOrders = {
"Done": 1,
"Busy": 2,
"Pending": 3
};
console.log(data);
data.sort(function(a, b) {
return sortOrders[a.state] - sortOrders[b.state];
});
console.log(data);
dmFyIGRhdGEgPSBbCiAgICB7CiAgICAgICAgaWQ6IDEsCiAgICAgICAgc3RhdGU6ICJQZW5kaW5nIgogICAgfSwKICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICBzdGF0ZTogIkRvbmUiCiAgICB9LAogICAgewogICAgICAgIGlkOiAzLAogICAgICAgIHN0YXRlOiAiQnVzeSIKICAgIH0KXTsKCnZhciBzb3J0T3JkZXJzID0gewogICAgIkRvbmUiOiAxLAogICAgIkJ1c3kiOiAyLAogICAgIlBlbmRpbmciOiAzCn07Cgpjb25zb2xlLmxvZyhkYXRhKTsKCmRhdGEuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICByZXR1cm4gc29ydE9yZGVyc1thLnN0YXRlXSAtIHNvcnRPcmRlcnNbYi5zdGF0ZV07Cn0pOwoKY29uc29sZS5sb2coZGF0YSk7
[ { id: 1, state: 'Pending' },
{ id: 2, state: 'Done' },
{ id: 3, state: 'Busy' } ]
[ { id: 2, state: 'Done' },
{ id: 3, state: 'Busy' },
{ id: 1, state: 'Pending' } ]