Skip to main content

Decoding the date sorting in Javascript, efficient faster and native way.

Coming from the previous post ( http://www.developerscloud.org/2014/05/decoding-underscore-js-sortby-sorting.html),  where we have used the underscore to sort the array, with the limitation of sorting in descending order, I will show you in below post how to sort effectively using javascript native functionality.

Lets use the same array we have in the previous post.

var datesArray = ['6-01-2014','2-01-2014', '4-01-2014', '5-01-2014', '3-01-2014', '1-01-2014'];

datesArray is now

["6-01-2014", "2-01-2014", "4-01-2014", "5-01-2014", "3-01-2014", "1-01-2014"]


Running the for loop making each item of array a date type object.

for(var i = 0; i< datesArray.length; i++){
datesArray[i] = new Date(datesArray [i]);
}


After which datesArray will become

[Sun Jun 01 2014 00:00:00 GMT+0530 (India Standard Time),
Sat Feb 01 2014 00:00:00 GMT+0530 (India Standard Time),
Tue Apr 01 2014 00:00:00 GMT+0530 (India Standard Time),
Thu May 01 2014 00:00:00 GMT+0530 (India Standard Time),
Sat Mar 01 2014 00:00:00 GMT+0530 (India Standard Time),
Wed Jan 01 2014 00:00:00 GMT+0530 (India Standard Time)]

// below are the comparison function that will result in dates being sorted in
// ASCENDING & DESCENDING order. As you can see, JavaScript's native comparison operators
// can be used to compare dates. Avoiding the use of sort by of underscore.


//Descending 
var date_sort_desc = function (date1, date2) {

       if (date1 > date2) return -1;
       if (date1 < date2) return 1;
       return 0;
 };

//Ascending
var date_sort_asc = function (date1, date2) {

if (date1 > date2) return 1;
if (date1 < date2) return -1;
return 0;
 };

Output:
datesArray.sort(date_sort_desc);

[Sun Jun 01 2014 00:00:00 GMT+0530 (India Standard Time),
Thu May 01 2014 00:00:00 GMT+0530 (India Standard Time),
Tue Apr 01 2014 00:00:00 GMT+0530 (India Standard Time),
Sat Mar 01 2014 00:00:00 GMT+0530 (India Standard Time),
Sat Feb 01 2014 00:00:00 GMT+0530 (India Standard Time),
Wed Jan 01 2014 00:00:00 GMT+0530 (India Standard Time)]

datesArray.sort(date_sort_asc);

[Wed Jan 01 2014 00:00:00 GMT+0530 (India Standard Time),
 Sat Feb 01 2014 00:00:00 GMT+0530 (India Standard Time),
 Sat Mar 01 2014 00:00:00 GMT+0530 (India Standard Time),
 Tue Apr 01 2014 00:00:00 GMT+0530 (India Standard Time),
 Thu May 01 2014 00:00:00 GMT+0530 (India Standard Time),
 Sun Jun 01 2014 00:00:00 GMT+0530 (India Standard Time)]


Converting back the array into the original format of dates.


for(var i = 0; i<x.length;i++){

datesArray[i] = datesArray[i].toISOString().slice(0, 10);

}

The formatted output result. 
datesArray


["2013-12-31", "2014-01-31", "2014-02-28", "2014-03-31", "2014-04-30", "2014-05-31"]


I hope you will all find it helpful.



Comments

Popular posts from this blog

Convert your datatable into generic poco object in c# using linq, ado and reflections.

Follow @harshit_parshii The most common problem that we face these days is to create a common class and method that can be used across all the projects and codes. So today I will be sharing my code where you can see how to make and create a generic function without using entity framework for ado. net. The scenario is like you have an old software that uses stored procedure to return set of entities as a data-table, you do not want to re-write the back-end code as you are creating a web API in c# which needs to be delivered asap. You need to map these data tables to models as you might be using MV* pattern. So here we will be doing one to one mapping of model to data- table, and in similar fashion insert or update can also be done. So basically we are converting a data-table to list of strongly typed object model to do CRUD operations. So we have following things before hand. A helper class is referenced as the database(dbFactory) which executes ado. ne...

Send a Fax in windows using faxcomexlib and TAPI in VB code .Net

An application that provides sending fax from faxmodem, connected to the computer, will be explained in the following post.  We can use Telephony Application Programming Interface (TAPI) and the Fax Service Extended Component Object Model (COM) API to send fax. The fax service is a Telephony Application Programming Interface (TAPI)-compliant system service that allows users on a network to send and receive faxes from their desktop applications. The service is available on computers that are running Windows 2000 and later. The fax service provides the following features: Transmitting faxes Receiving faxes Flexible routing of inbound faxes Outbound routing Outgoing fax priorities Archiving sent and received faxes Server and device configuration management Client use of server devices for sending and receiving faxes Event logging Activity logging Delivery receipts Security permissions The following Microsoft Visual Basic code example sends a fax. Note that...

With new experiences comes great responsibility

Hello Everyone, I am an ordinary person with some highly looked after skills, not boasting about myself. But after coding in this IT industry for almost 5 years for the first time I am thinking:- Is delivering the code my only responsibility or is there anything else I need to look into as well? From last few month's I was highly involved in some entirely new domain which is financial, and when you play with the number you need to be highly focused, so unable to update my blog as well. When I was working on the urgent deadlines and tight estimates and being from a healthy UI background like css3, html5, responsive design, knockout js, less etc. I was put on the SQL server and asp.net with grid views and some freaked out Telerik controls. I know it's a learning for me and I can see why UX matters to every person in this entire world but not UI and you can write it on stamp paper. User Experience, with logical and functionally correct code, is the need of the hour to...