Demigodd
@Demigodd

Как сортировать обьекты по дате ( по возрастанию )?

Ссылка на JSFiddle

Как сортировать обьекты по дате ( по возрастанию ) только те у которых var === true.
На остальных что бы сортировка не обрашаля внимания.

К примеру через ng-repeat="arr in array | orderBy: 'date'". Но так касаеться всех обьектов.
  • Вопрос задан
  • 978 просмотров
Решения вопроса 2
spnq
@spnq
Frontend Developer
Проще всего сделать два разных массива и отображать их отдельно (если я правильно понял).

Пусть изначальный массив, как на фидле
original = [
  {id: 1, name: 'test_1', date: '2018-12-9', var: true},
  {id: 2, name: 'test_2', date: '2018-12-2', var: false},
  {id: 3, name: 'test_3', date: '2018-12-6', var: true},
  {id: 4, name: 'test_4', date: '2018-12-8', var: false},
  {id: 5, name: 'test_5', date: '2018-12-10', var: true},
  ];

Тогда новый отсортированный по дате массив с var === true:
sortedArray = original.filter( next => next.var).sort((a, b) => { a.date - b.date})

Массив с остальными датами без сортировки:
unsortedArray = original.filter( next => !next.var)
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
array.sort((a, b) => {
  if(a.var !== true || b.var !== true) return 0;
  return a.date - b.date;
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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