var dateArray = ['11/01/2020', '10/01/2020', '09/01/2020', '07/01/2020', '06/01/2020']
If I have a date 08/01/2020
, then I need to find its previous closest date in the array which is 07/01/2020
. I am omitting the time but that will also be part of the date.
Advertisement
Answer
var dateArray = ['11/01/2020', '10/01/2020', '09/01/2020', '07/01/2020', '06/01/2020'] let date = '08/01/2020' function findClosestPrevDate(arr,target){ let targetDate = new Date(target); let previousDates = arr.filter(e => ( targetDate - new Date(e)) > 0) let sortedPreviousDates = previousDates.filter((a,b) => new Date(a) - new Date(b)) return sortedPreviousDates[0] || null } let r1 = findClosestPrevDate(dateArray,"08/01/2020") console.log(r1) let r2 = findClosestPrevDate(dateArray,"10/01/2020") console.log(r2)