@kolaluka

Как отсортировать массив с объектами?

[{time: '09:00:00'}, {time: '12:30:00'}, {time: '13:30:00'}, {time: '10:00:00'}, {time: '12:00:00'}]


Как этот отсортировать так массив, чтобы на выходе получился тот, что ниже?

[{time: '09:00:00'}, {time: '10:00:00'}, {time: '12:00:00'}, {time: '12:30:00'}, {time: '13:30:00'}]


так не получается
sort((a, b) => b.time - a.time);
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Значения time не числа, чтобы вычитать b.time - a.time, а строки.

Время в таком формате можно сравнивать как строки: больше-меньше — лексикографический порядок сохраняет смысл.
arr.sort((a, b) => a.time > b.time ? 1 : (a.time == b.time ? 0 : -1))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Nolis
@Nolis
it-гопник
Если есть возможность прописать ручками - просто добавь sort в каждом объекте по типу:
[{time: '09:00:00', sort: 1}, {time: '10:00:00', sort: 2}],
Если возможности нет, то нужно переводить время в секунды и сравнивать от начала суток.
https://developer.mozilla.org/en-US/docs/Web/JavaS...

p.s. sort по сути работать должен, но не так явно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽