了解如何在JavaScript中按日期值对一个数组的项目进行排序
假设你有一个这样的对象数组,它包含一组日期对象。
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 属性对这些活动进行排序。
你可以使用sort() 方法的 Array,它需要一个回调函数,该函数将数组中包含的2个对象(我们称之为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)