underscore sorts
by abenrob
JavaScript
function outputJSON(input) {
document.body.appendChild(document.createElement('pre'))
.innerHTML = JSON.stringify(input, null, 2);
}
var attrs = [
{name:'east', score: 90, weather:'mild'},
{name:'south', score: 60, weather:'warm'},
{name:'west', score: 100, weather:'hot'},
];
var categories = ['warm','mild','hot']
var sortOrder = ['hot','warm','mild']
var sorted = function(arr){
return _.sortBy(arr, function(itm){
var sorter = itm;
if (_.isObject(itm)){
sorter = itm.weather;
}
return _.indexOf(sortOrder, sorter);
});
};
outputJSON(sorted(attrs));
outputJSON(sorted(categories));