繁体   English   中英

如何使用矩在数组中获得最近的下一次?

[英]How can i get the nearest next time in array using moment?

我想找到最接近给定时间的下一次,我从堆栈溢出中得到了这段代码,但我无法得到想要的结果

 // Current time in millis const now = +moment('10:07', 'HH:mm').format('x'); // List of times const times = ["10:00", "10:18", "23:30", "12:00"]; // Times in milliseconds const timesInMillis = times.map(t => +moment(t, "HH:mm").format("x")); function closestTime(arr, time) { return arr.reduce(function(prev, curr) { return Math.abs(curr - time) < Math.abs(prev - time)? curr: prev; }); } const closest = moment(closestTime(timesInMillis, now)).format('HH:mm'); // closest is 10:00 but i want the next time 10:18 console.log(closest);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

完全不需要片刻

24小时时间可排序,可直接比较

 const times = ["10:00", "10:18", "23:30", "12:00"].sort(); const getClosest = targetTime => times.find(time => time >= targetTime) || "N/A"; console.log(getClosest("10:07")); console.log(getClosest("11:30")); console.log(getClosest("13:30")); console.log(getClosest("23:40")); // not available in array

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM