Just a simple bit of JavaScript code that I wanted to share. I had an array of strings representing playing cards and I wanted to sort them from King to Ace. This mix of alphanumeric characters required a custom sort function.
//Array of cards, the first character of the string represents the rank var cards = ["K", "1", "J", "2", "7"]; cards.sort(function (a, b) { "use strict"; //needed to pass JSLint //custom sort order var order = "KQJ198765432A"; if (order.indexOf(a[0]) > order.indexOf(b[0])) { return 1; } else if (order.indexOf(a[0]) < order.indexOf(b[0])) { return -1; } else { return 0; } });
This same logic could be used for other unique sorts; just change the order string to match the desired sort. If you want to sort an array of objects just change a[0] and b[0] to a.your_property_name[0] and b.your_property_name respectively.