so/29323758
by rudiedirkx
JavaScript
var list = [
{"name": "Steve", "age": 27, "color": "Blue"},
{"name": "Joe", "age": 28, "color": "Red"},
{"name": "John", "age": 30, "color": "Green"},
{"name": "Jane", "age": 33, "color": "Blue"},
{"name": "Julie", "age": 35, "color": "Blue"},
{"name": "Kevin", "age": 40, "color": "Red"}
];
sort('color', 'Red');
function sort() {
console.log('ORDER BY (color = Red) DESC, color ASC, age ASC:');
console.log(
list.sort(function(a, b) {
if (a.color == 'Red') {
if (b.color == 'Red') {
return a.age - b.age;
}
return -1;
}
if (b.color == 'Red') {
return 1;
}
if (a.color == b.color) {
return a.age - b.age;
}
return a.color < b.color ? -1 : 1;
}).map(function(item) {
return item.name + " \t" + item.age + "\t" + item.color;
}).join("\n")
);
}