Skip to content

Instantly share code, notes, and snippets.

@z-------------
Last active August 29, 2015 13:57
Show Gist options
  • Save z-------------/9658418 to your computer and use it in GitHub Desktop.
Save z-------------/9658418 to your computer and use it in GitHub Desktop.
Sort an array of objects by property
var objectSort = function(array,sortKey,sortFunction) {
switch (sortFunction) {
case "number-asc":
return array.sort(function(a, b){
return a[sortKey]-b[sortKey];
});
break;
case "number-desc":
return array.sort(function(a, b){
return b[sortKey]-a[sortKey];
});
break;
case "alpha-desc":
return array.sort(function(a,b){
if(a[sortKey].toLowerCase() < b[sortKey].toLowerCase()) return 1;
if(a[sortKey].toLowerCase() > b[sortKey].toLowerCase()) return -1;
return 0;
});
break;
default:
return array.sort(function(a,b){
if(a[sortKey].toLowerCase() < b[sortKey].toLowerCase()) return -1;
if(a[sortKey].toLowerCase() > b[sortKey].toLowerCase()) return 1;
return 0;
});
break;
}
}
// objectSort([{waffles:1,derp:"apple"},{waffles:3,derp:"cat"},{waffles:2,derp:"banana"}],"waffles","alpha-desc")
// > [{waffles:3,derp:"cat"},{waffles:2,derp:"banana"},waffles:1,derp:"apple"}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment