Для сортировки массива объектов в JavaScript по дате можно использовать метод sort()
массивов в сочетании с функцией сравнения.
Давайте рассмотрим пример:
Предположим, у вас есть массив объектов, каждый из которых содержит свойство date
, представляющее дату в формате JavaScript:
let data = [
{ name: 'Объект 1', date: new Date('2023-01-15') },
{ name: 'Объект 2', date: new Date('2022-12-20') },
{ name: 'Объект 3', date: new Date('2023-05-10') }
];
Теперь давайте отсортируем этот массив по дате. Для этого мы используем метод sort()
и функцию сравнения. Функция сравнения должна принимать два параметра и возвращать число, которое показывает, как должны быть упорядочены эти два элемента:
data.sort((a, b) => {
return a.date - b.date;
});
В этой функции сравнения a
и b
- это два объекта из массива. Мы сравниваем их свойства date
. Если a.date
меньше, чем b.date
, то возвращается отрицательное число, что указывает на то, что a должно быть перед b
в отсортированном массиве. Если a.date
больше, чем b.date
, то возвращается положительное число, и если они равны, то возвращается 0
.
После выполнения этого кода массив data
будет отсортирован по возрастанию даты.
console.log(data);
// [
// { name: 'Объект 2', date: 2022-12-20T00:00:00.000Z },
// { name: 'Объект 1', date: 2023-01-15T00:00:00.000Z },
// { name: 'Объект 3', date: 2023-05-10T00:00:00.000Z }
// ]