📅  最后修改于: 2023-12-03 15:10:22.529000             🧑  作者: Mango
当我们处理一些跟时间有关的数据时,通常会用到日期排序。在 JavaScript 中,可以用 sort()
方法来对数组进行排序。但是当数组中的元素是对象时,排序就需要一些额外的处理。
下面是一个示例数组:
const data = [
{ name: "John", date: new Date("2021-03-12") },
{ name: "Bob", date: new Date("2021-03-10") },
{ name: "Mary", date: new Date("2021-03-14") },
{ name: "Alice", date: new Date("2021-03-11") },
];
我们想要按日期对数组进行排序,可以使用以下代码:
data.sort((a, b) => a.date - b.date);
这里使用了箭头函数作为 sort()
方法的参数,它返回两个元素进行比较的结果。a.date
和 b.date
是两个对象的日期属性,用 -
运算符计算它们的时间戳差值。如果结果为负数,则 a 在前面,否则 b 在前面。
现在,data
数组已经按日期从小到大排序了:
[
{ name: "Bob", date: "2021-03-10T00:00:00.000Z" },
{ name: "Alice", date: "2021-03-11T00:00:00.000Z" },
{ name: "John", date: "2021-03-12T00:00:00.000Z" },
{ name: "Mary", date: "2021-03-14T00:00:00.000Z" },
]
如果想要按日期从大到小排序,可以将 a
和 b
对调:
data.sort((a, b) => b.date - a.date);
以上就是 JavaScript 中数组对象按日期排序的方法。