我有一系列这样的约会时间。它们是作为字符串提供的。我需要能够隔离所提供的数组的最小dateTime和最大dateTime,但是我很难弄清楚如何做到这一点?是否可以将每个字符串提供给->新日期(DateTime),然后以这种方式比较这两个对象?或者我必须解析,然后比较日期和比较时间分别?
示例值:
4: "2018-11-15 00:16"
5: "2018-11-15 00:52"
6: "2018-11-15 02:24"
7: "2018-11-15 03:02"
8: "2018-11-15 02:49"
9: "2018-11-15 00:14"
10: "2018-11-15 02:20"在这个例子中,我需要隔离9作为最小值,7作为数组中的最大值。
发布于 2018-11-15 19:45:47
打字本:
const dates = ["2018-11-15 00:16", "2018-11-15 00:52", ...];
const sortedDates = dates.sort();
const minDate = sortedDates[0];
const maxDate = sortedDates[sortedDates.length - 1];是的,你可以:
new Date("2018-11-15 00:16") < new Date("2018-11-15 00:52") => true发布于 2018-11-15 19:51:44
阅读其他答案,我不得不提出以下几点:
Date
var arr =["2018-11-15 00:16", "2018-11-15 00:52", "2018-11-15 02:24", "2018-11-15 03:02", "2018-11-15 02:49", "2018-11-15 00:14", "2018-11-15 02:20"];
var minDate = arr.reduce((a, b) => a < b ? a : b);
var maxDate = arr.reduce((a, b) => a > b ? a : b);
console.log("min", minDate, "at index", arr.indexOf(minDate));
console.log("max", maxDate, "at index", arr.indexOf(maxDate));
发布于 2018-11-15 19:45:04
ONELINER:不是最快的( O(nlogn) ),而是短代码--我假设您的日期字符串在a数组中
let min=a.sort()[0], max=a.slice(-1)[0];结果在varaible min和max中,工作示例HERE中。
https://stackoverflow.com/questions/53326817
复制相似问题