У меня возникла проблема в сортировке массивов объектов по значениям даты. Я нашел много вопросов, которые задавали другие пользователи раньше, я прошел все возможные решения, и у меня все еще не было решения для моей проблемы с сортировкой. Я также создал два разных массива для проверки функции сортировки, но не смог получить даты в правильном порядке. Вот мои данные:Как отсортировать массив объектов Javascript по дате?
[Object { eventDate="12/12/2016", display_order="5"},Object { eventDate="12/12/2016", display_order="3"}]
[Object { eventDate="04/21/2016", display_order="3"},Object { eventDate="04/21/2016", display_order="1"}]
Я использовал эту логику, чтобы упорядочить данные по значениям даты:
entries.sort(function(a,b){
var i = new Date(a.eventDate);
var j = new Date(b.eventDate);
return i-j;
});
Мои данные еще не отсортированы в правильном порядке, с помощью этой функции. Тогда я попытался упорядочить массив, который выглядит следующим образом:
var dates = Object.keys(groupedByDate);
console.log(dates)
Это выход для переменной даты: ["12/12/2016", "04/21/2016"]
Затем я попытался сделать это:
dates.sort(function(a, b) {
a = new Date(a.dates);
b = new Date(b.dates);
return a>b ? -1 : a<b ? 1 : 0;
});
Мой выход еще сделал не сортировать мои даты в правильном порядке. Я не уверен, что я делаю что-то неправильно или что-то еще может быть проблемой в этом случае. Если кто-нибудь может помочь, пожалуйста, дайте мне знать. Благодарю.
Я предполагаю, что вы хотите отсортировать его в порядке возрастания? Ваш вид работает для меня, но он заказывает его в порядке убывания .... Где вы также ожидаете только даты в качестве результата? – MinusFour
Я думаю, что ваша первая функция сортировки верна, но 'datestring' для конструктора Date не является. Вы должны проверить правильность построения экземпляров даты. – michaPau