@fantastikgodd

Как отсортировать данные?

в массиве по возрастанию даты

var arr = [{
    id: 1,
    date: "12.03.2021"
  }, 
  {
    id: 2,
    date: "22.03.2021"
  },
  {
    id: 3,
    date: "5.03.2021"
  },
  {
    id: 4,
    date: "5.03.2020"
  },
];
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const sorted = (arr, key) => arr
  .map(n => [ n, key(n) ])
  .sort((a, b) => a[1] - b[1])
  .map(n => n[0]);


const sortedArr = sorted(arr, n => new Date(n.date.split('.').reverse().join('-')));
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
const toDate = (str) => {
  const [date, month, year] = str.split('.');
  return Date.parse([year, month, date].join('-'));
}

const sorted = arr.sort((a, b) => toDate(a.date) - toDate(b.date))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fallus
@fallus
arr.sort((a, b) => {
    if(new Date(a.date).getTime() < new Date(b.date).getTime()) return 0
    return -1
})


Для сафари(IE v2) правда нужно заменить будет разделители на /
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 23:03
1 руб./за проект
23 нояб. 2024, в 22:38
2500 руб./за проект
23 нояб. 2024, в 22:03
3000 руб./за проект