javascript - 以 MM/DD/YYYY 格式查找下一个最接近的日期 JavaScript

标签 javascript arrays sorting date

我有一个格式为 MM/DD/YYYY 的日期数组。我需要从今天开始找到 future 的下一个最接近的日期。假设今天是 2016 年 1 月 22 日,那么 2016 年 2 月 19 日将返回。

2/3/2015
7/5/2015
1/21/2016
2/19/2016
7/1/2016

我尝试过使用子字符串来分离月、日、年,并尝试根据这些值进行排序,但肯定有更好的方法。

最佳答案

不需要排序算法。您只需迭代一次并找到大于或等于今天的最近日期。

伪代码

closest <- infinity
foreach date in dates:
    if (date >= now and date < closest) then
        closest <- d
return closest

JavaScript

const dates = [
  '2/3/2035',
  '7/5/2035',
  '1/21/2036',
  '2/19/2036',
  '7/1/2036',
  '10/22/2039',
  '08/12/2039',
];

const now = new Date();

let closest = Infinity;

dates.forEach(function(d) {
   const date = new Date(d);

   if (date >= now && (date < new Date(closest) || date < closest)) {
      closest = d;
   }
});

console.log(closest);

关于javascript - 以 MM/DD/YYYY 格式查找下一个最接近的日期 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37505117/

相关文章:

java - 使用循环java按每个元素中的位数从最大到最小对数组进行排序

javascript - 按名称获取嵌套键

php - 获取以相同字符开头的所有列的数组。

objective-c - 对 NSSet 进行排序的最有效方法是什么?

ios - 排序 CKRecord 返回 "Expected Types"

javascript - javascript 中的responseText 遇到困难

javascript - 为网页创建 JQuery 单字段确认对话框的简单方法

javascript - React 在页面刷新时无法正确渲染

java - 从 IntroSort 转到 MergeSort

javascript - 如何用js将数据写入xls表