📅  最后修改于: 2023-12-03 15:23:10.116000             🧑  作者: Mango
在 JavaScript 中,我们经常需要对日期(Date)进行排序。本文将介绍如何对包含日期的对象数组进行排序。
为了演示排序,我们首先需要创建一个对象数组。
const data = [
{ id: 1, name: "Alice", date: "2020-11-28" },
{ id: 2, name: "Bob", date: "2020-11-26" },
{ id: 3, name: "Charlie", date: "2020-11-30" },
{ id: 4, name: "David", date: "2020-11-29" }
];
上面的数组中每个对象包含一个独立的日期字符串 date
。我们将使用这个日期来进行排序。
使用 JavaScript 内置的 Array.sort()
方法可以对数组进行排序。该方法可以接受一个比较函数作为参数,用于指定排序的方式。
我们将创建一个比较函数,用于比较两个对象的日期:
function compare(a, b) {
const dateA = new Date(a.date);
const dateB = new Date(b.date);
return dateA - dateB;
}
data.sort(compare);
上面的代码首先将日期字符串转换为日期对象,并将它们存储在 dateA
和 dateB
中。然后,比较函数返回两个日期之间的差值。如果 dateA
比 dateB
更早,那么差值将是负数,导致 a
的位置在 b
前面。
最后,我们将使用 sort()
方法对数组进行排序。
下面是完整的代码片段,以便参考:
const data = [
{ id: 1, name: "Alice", date: "2020-11-28" },
{ id: 2, name: "Bob", date: "2020-11-26" },
{ id: 3, name: "Charlie", date: "2020-11-30" },
{ id: 4, name: "David", date: "2020-11-29" }
];
function compare(a, b) {
const dateA = new Date(a.date);
const dateB = new Date(b.date);
return dateA - dateB;
}
data.sort(compare);
JavaScript 中使用 sort()
方法可以对日期进行排序。我们可以编写一个比较函数来指定排序方式。该函数应该返回一个值,用于比较两个对象的顺序。sortBy()方法也是日期排序的常用方法,但需要使用插件,本文未作介绍。