How to sort an array of objects by date? How to sort an array of objects by date? arrays arrays

How to sort an array of objects by date?


As has been pointed out in the comments, the definition of recent isn't correct javascript.

But assuming the dates are strings:

var recent = [    {id: 123,age :12,start: "10/17/13 13:07"},     {id: 13,age :62,start: "07/30/13 16:30"}];

then sort like this:

recent.sort(function(a,b) {     return new Date(a.start).getTime() - new Date(b.start).getTime() });

More details on sort function from W3Schools


recent.sort(function(a,b) { return new Date(a.start).getTime() - new Date(b.start).getTime() } );


This function allows you to create a comparator that will walk a path to the key you would like to compare on:

function createDateComparator ( path = [] , comparator = (a, b) => a.getTime() - b.getTime()) {  return (a, b) => {    let _a = a    let _b = b    for(let key of path) {      _a = _a[key]      _b = _b[key]    }    return comparator(_a, _b)  }}const input = (  [ { foo: new Date(2017, 0, 1) }  , { foo: new Date(2018, 0, 1) }  , { foo: new Date(2016, 0, 1) }  ])const result = input.sort(createDateComparator([ 'foo' ]))console.info(result)