Как отсортировать массив по значению даты в JavaScript

Узнайте, как отсортировать массив элементов по значению даты в 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)

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: