how can i sort this array by timestamp and what is the fastest way (array has many many entries)?
my array
myList = new Array(); myList[0] = {}; myList[0]['title'] = 'I am really new'; myList[0]['timestamp'] = 1317039046; myList[0]['date'] = '2011-09-26T12:10:46+00:00'; myList[1] = {}; myList[1]['title'] = 'I am the oldest'; myList[1]['timestamp'] = 1315656646; myList[1]['date'] = '2011-09-10T12:10:46+00:00'; myList[2] = {}; myList[2]['title'] = 'I am older'; myList[2]['timestamp'] = 1316866246; myList[2]['date'] = '2011-09-24T12:10:46+00:00'; myList[3] = {}; myList[3]['title'] = 'I am old'; myList[3]['timestamp'] = 1316952646; myList[3]['date'] = '2011-09-25T12:10:46+00:00';
example
http://jsbin.com/ejagup/2/edit#preview
To sort an array of objects by date property: Call the sort() method on the array. Subtract the date in the second object from the date in the first. Return the result.
The sort() method allows you to sort elements of an array in place. Besides returning the sorted array, the sort() method changes the positions of the elements in the original array. By default, the sort() method sorts the array elements in ascending order with the smallest value first and largest value last.
Show activity on this post. This will compare the elements of mydict based on their time stamp and sort it that way. Now, if you want to sort it by the actual time, then you have to convert that timestamp string to a Time object of some sort, and then sort mydict based on that.
myList.sort(function(x, y){ return x.timestamp - y.timestamp; })
myList
is a JavaScript array, which supports the sort
method. This method accepts a function as argument, which sorts the array according to the returned value.
Currently, the sort algorithm will place the element with the lowest timestamp first. Swap x.timestamp
and y.timestamp
if you want to sort the array in the other direction.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With