我在javascript中有一个日期数组 我想搜索一个约会,我不希望它在那里 但我希望得到最接近的日期 那怎么能这样呢?
Connected to 127.0.0.1 9040
oohlalala
答案 0 :(得分:0)
一种可能性是将其分解为一些可重复使用的部分。我们需要能够计算两个日期的差异,并且我们需要能够根据某些计算找到数组的最小值(在这种情况下是与目标日期的差异。)
这是一种做法的方法:
const dates = [new Date("2018-02-18T20:24:33.000Z"), new Date("2018-02-18T20:45:02.000Z"), new Date("2018-02-18T21:22:50.000Z"), new Date("2018-02-18T22:06:31.000Z"), new Date("2018-02-18T22:47:18.000Z")]
const timeDiff = (first) => (second) => Math.abs(first - second)
const minBy = (fn, list) => list.reduce(
({d, val}, item) => fn(item) < d ? {val: item, d: fn(item)} : {d, val},
{d: Infinity, val: null}
).val
const closestDate = (dates) => (testDate) => minBy(timeDiff(testDate), dates)
console.log(closestDate(dates)(new Date('2018-02-18T16:52:35')))
&#13;