# Rhythm & Binary

How to Implement Sort in JavaScript

Sometimes in Software Engineering you run across code that is so elegant that you have to write about it.

I was recently working with a project that uses an array of values that needed to be sorted by date. The array was read in from a Json file.

In JavaScript to sort an array you can just use the standard `array.sort` method. If you want to do custom sorting you could do something like the following:

``````compare( a, b ) {
// sort descending
if ( a.score < b.score ) {
return 1;
}
if ( a.score > b.score ) {
return -1;
}
return 0;
}
``````

The JavaScript sorting method takes advantage of the following relationship (credit geeksforgeeks.com for this):

``````compareFunction(a, b) < 0;
``````

Then a comes before b in the answer.

``````compareFunction(a, b) > 0;
``````

Then b comes before a in the answer.

``````compareFunction(a, b) = 0;
``````

Then the order of a and b remains unchanged.

Here we come to the elegant part. So in the project I was working on, I needed to sort the array by date. Since all I need to be concerned with was a negative, postiive, or 0 value I could do the following:

``````// sort by date here
posts.sort(function (a, b) {
return new Date(b.pubDate) - new Date(a.pubDate);
});
``````

So in the one line of code

``````return new Date(b.pubDate) - new Date(a.pubDate);
``````

I was able to sort the array by taking advantage of the built in JavaScript functionality. I have to credit this to the stack overflow article I found here.

So this post is rather short, but just wanted to mention it because I thought it was cool how such little code could accomplish so much.

Hope this helped or at least highlighted something cool you didn’t know before.