在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
屬性對這些活動進行排序。
您可以使用Array
的sort()
方法,該方法接受一個回調函數,該函數將兩個對像作為參數(我們稱之為a
和b
):
const sortedActivities = activities.sort((a, b) => b.date - a.date)
當我們返回一個正值時,該函數向sort()
表示對象b
在排序中優先於對象a
。返回負值則相反。
sort()
方法返回一個新的排序數組,但它也在原地對原始數組進行排序。因此,sortedActivities
和activities
數組都已經排序。保護原始數組免於被修改的一種方法是在排序之前使用slice()
方法創建數組的副本,如下所示:
const sortedActivities = activities.slice().sort((a, b) => b.date - a.date)