How do I sort below array of dates in ascending as well as descending order? For example, I have:
var value = [
{"ID":"3","date":null},
{"ID":"24","date":"07/28/2017"},
{"ID":"65","date":"05/14/2018"},
{"ID":"36","date":"06/11/2017"},
{"ID":"27","date":null},
{"ID":"18","date":"02/26/2018"},
{"ID":"37","date":null},
{"ID":"39","date":"05/15/2017"},
{"ID":"10","date":"06/11/2017"},
{"ID":"4","date":null},
{"ID":"8","date":null},
{"ID":"12","date":"05/15/2017"},
{"ID":"14","date":"07/28/2017"},
{"ID":"19","date":"06/11/2017"}
];
I'd like the resultant array to look like:
var result = [
{"ID":"3","date":null},
{"ID":"27","date":null},
{"ID":"4","date":null},
{"ID":"8","date":null},
{"ID":"39","date":"05/15/2017"},
{"ID":"12","date":"05/15/2017"},
{"ID":"36","date":"06/11/2017"},
{"ID":"10","date":"06/11/2017"},
{"ID":"19","date":"06/11/2017"}
{"ID":"24","date":"07/28/2017"},
{"ID":"14","date":"07/28/2017"},
{"ID":"18","date":"02/26/2018"},
{"ID":"65","date":"05/14/2018"}
];
Javascript sorting function :
function sortArray(desc, value) {
if (desc) {
value.sort(function(a: any, b: any) {
let aValue = (a["date"]) ? Number(new Date(a["date"])) : Number(new Date(0));
let bValue = (b["date"]) ? Number(new Date(b["date"])) : Number(new Date(0));
return bValue - aValue;
});
} else {
value.sort(function(a: any, b: any) {
let aValue = (a["date"]) ? Number(new Date(a["date"])) : Number(new Date(0));
let bValue = (b["date"]) ? Number(new Date(b["date"])) : Number(new Date(0));
return aValue - bValue;
});
}
}
I have mention input array as well as expected array.Thanks in advance.