js中多个时间,怎么取最小值

CaixK
  • 499
['2020-9-1','2020-9-2','2020-9-3']
怎么取最小的时间
回复
阅读 2.8k
4 个回答

转时间戳排序:

array.sort((a, b) => (new Date(a)).valueOf() - (new Date(b)).valueOf())[0];

或者转时间戳取最小值(推荐):

Math.min.apply(null, array.map(item => (new Date(item)).valueOf()));
wuyuanaaa
  • 871

排个序

arr.sort((a, b) => {
    return new Date(a).getTime() - new Date(b).getTime()
})

首先说一下 如果只是业务中遇到。楼上的几个说法已经够用了。
但是如果是 在刷题。那么思路还是操作字符串,而不是当成时间来看

function getMin(arr: string[]): string {
    return arr.reduce((last, current) => {
        return new Date(last).getTime() > new Date(current).getTime() ? current : last
    })
}

console.log('min:', getMin(['2020-9-1', '2020-9-2', '2020-9-3']))

console.log('min:', getMin(['2020-10-15', '2015-3-6', '2020-9-3']))

我也写个思路,反正题目也不复杂,题主你咋自己想想先写个暴力循环的呢

宣传栏