Sorting JSON (by Specific Element) Alphabetically
I have some JSON that is formatted like: places =[ { 'city':'Los Angeles', 'country':'USA', }, { 'city':'Boston', 'country':'USA', },
Solution 1:
Unfortunately there is no generic "compare" function in JavaScript to return a suitable value for sort(). I'd write a compareStrings function that uses comparison operators and then use it in the sort function.
function compareStrings(a, b) {
// Assuming you want case-insensitive comparison
a = a.toLowerCase();
b = b.toLowerCase();
return (a < b) ? -1 : (a > b) ? 1 : 0;
}
places.sort(function(a, b) {
return compareStrings(a.city, b.city);
})
Solution 2:
Matti's solution is correct, but you can write it more simply. You don't need the extra function call; you can put the logic directly in the sort
callback.
For case-insensitive sorting:
places.sort( function( a, b ) {
a = a.city.toLowerCase();
b = b.city.toLowerCase();
return a < b ? -1 : a > b ? 1 : 0;
});
For case-sensitive sorting:
places.sort( function( a, b ) {
return a.city < b.city ? -1 : a.city > b.city ? 1 : 0;
});
Post a Comment for "Sorting JSON (by Specific Element) Alphabetically"