Я пытаюсь отсортировать массив объектов по значению объектов. Но мне нужны определенные элементы в массиве, которые достигают определенных критериев, чтобы быть первыми, и другие элементы, которые достигают других критериев, чтобы быть последними. В противном случае его следует отсортировать по заголовку. Вот пример того, что я имею в виду:
let arr = [
{ flag: true, title: 'Orange', dateAdded: 'Some Date' },
{ flag: true, title: 'Apple', dateAdded: 'Some Date' },
{ flag: false, title: 'Peach', dateAdded: 'Some Date' },
{ flag: true, title: 'Plum', dateAdded: 'Some Date' },
{ flag: true, title: 'Mango', dateAdded: 'Some Date' },
{ flag: true, title: 'Banana', dateAdded: 'Some Date' },
{ flag: false, title: 'Tangerine', dateAdded: 'Some Date' }
];
Вот критерии:
- Если дата находится в пределах 1 недели с этого момента, этот элемент должен быть первым, и он должен сортировка по дате,
- Если для флага установлено значение false, этот элемент должен быть последним, но сортироваться по заголовку
- В противном случае сортировать по заголовку
(I ' Я буду использовать момент для дат.)
Итак, я знаю, как отсортировать массив объектов, но как я могу также добавить эти 3 критерия?
arr.sort((a, b) => {
if (a.title > b.title) return 1;
if (a.title < b.title) return -1;
return 0;
});