The quick answer (if there is a tie, it will return both - provided that the array is pre-sorted):
var paymentMilestones = [0, 30, 60, 90]; var daysOverdue = 33; function findClose(array,elem){ var minDelta = null; var minIndex = null; for (var i = 0 ; i<array.length; i++){ var delta = Math.abs(array[i]-elem); if (minDelta == null || delta < minDelta){ minDelta = delta; minIndex = i; } else if (delta == minDelta) { return [array[minIndex],array[i]]; }
Michail Michailidis Oct 17 '14 at 16:33 2014-10-17 16:33
source share