Я должен был сделать сравнение для группового вида объектов для списка и не хотел делать переключатель / регистр для всех возможностей, поэтому я сначала сделал массив присвоения объектов числовому рангу, поэтому случай стало простое сравнение. Это всего лишь 4 варианта, но вы понимаете, как распространить это на ситуацию, когда переключатель / корпус становится неуправляемым:
функция mySort2 (item1, item2) {
var matrix = {
'repair': 4,
'r/r': 3,
'part': 2,
'misc': 1
};
(matrix[item1.category] < matrix[item2.category]) ? return +1 : return -1;
// если возможно, для этого нужно сначала проверить плохие данные ???
i1=matrix[item1.category] || null;
i2=matrix[item2.category] || null;
if (i1==null){
// handle bad data in item 1
return +1; // put it after 2
}
if (i2==null){
// ditto
return -1; //put 1 first
}
if (i1<i2)
return +1;
else
return -1;
}