在JavaScript中找出如何按日期值對數組中的項目進行排序

假設您有一個類似於以下的對象數組,其中包含一組date objects

const activities = [
 { title: 'Hiking', date: new Date('2019-06-28') },
 { title: 'Shopping', date: new Date('2019-06-10') },
 { title: 'Trekking', date: new Date('2019-06-22') }
]

您想要按照date屬性對這些活動進行排序。

您可以使用Arraysort()方法,該方法接受一個回調函數,該函數將兩個對像作為參數(我們稱之為ab):

const sortedActivities = activities.sort((a, b) => b.date - a.date)

當我們返回一個正值時,該函數向sort()表示對象b在排序中優先於對象a。返回負值則相反。

sort()方法返回一個新的排序數組,但它也在原地對原始數組進行排序。因此,sortedActivitiesactivities數組都已經排序。保護原始數組免於被修改的一種方法是在排序之前使用slice()方法創建數組的副本,如下所示:

const sortedActivities = activities.slice().sort((a, b) => b.date - a.date)