Задать вопрос

Как сортировать даты только по дню и месяцу?

Есть, например, три даты: 07.09.1984, 05.09.1985, 03.02.2000. Мне нужно их отсортировать только по дню и месяцу, игнорируя год. Это нужно для отсортированного для списка дней рождений. В moment не придумала, как проигнорировать год. Кто-нибудь знает, что сделать? Пока единственное, что приходит в голову, это сделать всем один и тот же год, но это как-то костыльно выглядит.
  • Вопрос задан
  • 248 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Сортируем существующий массив:

arr.sort((a, b) => {
  a = a.split('.', 2);
  b = b.split('.', 2);
  return (a[1] - b[1]) || (a[0] - b[0]);
});

Или, собираем отсортированный новый:

const sortedArr = arr
  .map(n => n.split('.'))
  .sort((a, b) => (a[1] - b[1]) || (a[0] - b[0]))
  .map(n => n.join('.'));
Ответ написан
Комментировать
Можно например так
['07.09.1984', '05.09.1985', '03.02.2000']
  .map(date =>
    parseInt(
      date
        .split('.')
        .slice(0, 2)
        .reverse()
        .join(''),
      10,
    ),
  )
  .sort(compareFunc);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы