Сортировать по дате неизменной JS и момент () - PullRequest
0 голосов
/ 11 октября 2018

У меня есть array из objects.Объекты имеют ключ date.date - это moment в формате date, созданный следующим образом: moment('1970-11-11').

Как отсортировать массив по дате в порядке возрастания / убывания?

То

arrayOfObjects.sort((a, b) => b.get('date') - a.get('date');

ни

arrayOfObjects.sort((a, b) => b.get('date').format('DD.MM.YYYY') - a.get('date').format('DD.MM.YYYY'))

не сортирует его.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Извините за вопрос, но если я правильно понимаю, у вас есть moment объекты в этом массиве, полностью способные выполнять вычисления даты и разницу.Так что если это так, почему бы и нет:

var data = [moment('1972-11-11'), moment('1971-11-11'), moment('1973-11-11')]

const result = data.sort((a,b) => a.diff(b))  // change to b.diff(a) for desc

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

Согласно моментальной документации на diff.Нет необходимости date/unix и т. Д.

0 голосов
/ 11 октября 2018

Попробуйте это:

arrayOfObjects.sort((a, b) => b.get('date').unix() - a.get('date').unix());
...