Как отсортировать массив до датам?

let objects = [
    {
        id: 1,
        displayName: 'Object John',
        date: '10-12-2020',
        enabled: true,
        relation: null
    },
    {
        id: 4,
        displayName: 'Object Alex',
        date: '12-12-2021',
        enabled: false,
        relation: null
    },
        id: 5,
        displayName: 'Object Pooja',
        date: '30-07-2019',
        enabled: true,
        relation: {
            relationId: 4
        }
    }

Ответы (1 шт):

Автор решения: Alexander Chernin

Надо воспользоваться методом sort, внутри которого преобразовать строку с датой объекта к "правильному" формату:

let objects = [
...
];
// Парсим дату из date
function parseDate(value) {
    const v = value.split('-');
    // преобразуем к формату и создаем дату
    return Date.parse(`${v[1]} ${v[0]}, ${v[2]}`);
}

objects.sort((o1, o2) => {
    return parseDate(o1.date) - parseDate(o2.date);
});

console.log(objects);
→ Ссылка