Sunday 19 November 2017

Sort Array of Objects by specific key value | Javascript





I'm having trouble sorting a specific array of objects from a small
personal project I'm working on. I have never had trouble using the
Array.prototype.sort() function before, but I wonder if something about the multiple
object keys is affecting it...



Been staring at
it for longer than I care to admit and just need to ask for help now. :|



Goal: Sort array
of objects alphabetically relative to a specific key.value on each of them.



Thanks in advance!




href="https://jsfiddle.net/nym26y6h/" rel="nofollow noreferrer">JS Fiddle
Here



Sort function
example - (I recommend looking at the full Fiddle for context
though).



var sorted =
array.sort((a, b) => { return a.key > b.key;
});


SOLVED




@Ryan
helped me find that returned a boolean isn't enough, you need to explicitly return a
positive or negative number, or 0.



@Brk showed
me an awesome quick way to do it.



This post has
a very detailed description.
href="https://stackoverflow.com/questions/24080785/sorting-in-javascript-shouldnt-returning-a-boolean-be-enough-for-a-comparison">Sorting
in JavaScript: Shouldn't returning a boolean be enough for a comparison
function?



Thanks all! Sorry for the
duplicate post :|


itemprop="text">
class="normal">Answer



You can
use href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare"
rel="noreferrer">localeCompare method which
will returns a number indicating whether a reference string comes before or after or is
the same as the given string in sort
order.




var sorted =
array.sort((a, b) => {
return
a.subreddit.localeCompare(b.subreddit)
});


href="https://jsfiddle.net/nym26y6h/1/"
rel="noreferrer">DEMO



No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...