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() });
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)