📜  按日期时刻排序数组 - Javascript (1)

📅  最后修改于: 2023-12-03 15:25:54.203000             🧑  作者: Mango

按日期时刻排序数组 - Javascript

在JavaScript中,我们可以使用sort()方法来对数组进行排序。但是,如果我们想要按照日期或时间进行排序,该怎么办?

答案是使用sort()方法的回调函数。我们可以编写一个自定义的比较函数,该函数将比较两个日期或时间,并告诉sort()方法相对顺序。下面是一个示例:

// 日期排序的比较函数
function dateSort(a, b) {
  const dateA = new Date(a.date);
  const dateB = new Date(b.date);
  return dateA - dateB;
}

// 时间排序的比较函数
function timeSort(a, b) {
  const timeA = new Date(`1970-01-01T${a.time}:00`);
  const timeB = new Date(`1970-01-01T${b.time}:00`);
  return timeA - timeB;
}

const events = [
  { date: '2021-05-01', time: '10:00' },
  { date: '2021-04-01', time: '12:30' },
  { date: '2021-05-02', time: '09:00' },
  { date: '2021-04-01', time: '09:00' },
];

console.log('按日期排序', events.sort(dateSort));
// 输出 [ { date: '2021-04-01', time: '12:30' }, { date: '2021-04-01', time: '09:00' }, { date: '2021-05-01', time: '10:00' }, { date: '2021-05-02', time: '09:00' } ]

console.log('按时间排序', events.sort(timeSort));
// 输出 [ { date: '2021-04-01', time: '09:00' }, { date: '2021-04-01', time: '12:30' }, { date: '2021-05-01', time: '10:00' }, { date: '2021-05-02', time: '09:00' } ]

从上面的例子中,我们可以看到dateSort()timeSort()函数分别用于按日期和时间排序。在这两个函数中,我们将日期字符串和时间字符串转换为JavaScript的Date类型,并将其用于比较操作。

使用这种方法,我们可以轻松地将任何日期或时间格式的数组按照需要的方式排序。