Lastor
@Lastor
В чем сила, брат? В ньютонах.

Двойная сортировка со стрелочной функцией. Как реализовать?

const sortByLName = (d1, d2) => (d1.last_name > d2.last_name) ? 1 : -1
const sortByJob = (d1, d2) => (d1.job_id < d2.job_id) ? 1 : -1

Подскажите, пожалуйста, как отсортировать по job_id и last_name одновременно.
В гугле есть куча примеров двойной сортировки. Но как это сделать при такой записи я не понял.
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const sortByLName = (a, b) => a.last_name.localeCompare(b.last_name, 'ru');
const sortByJobId = (a, b) => a.job_id - b.job_id;
const sortByJobIdAndLName = (a, b) => sortByJobId(a, b) || sortByLName(a, b);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
hahenty
@hahenty
('•')
sort = ( a, b ) => byJob( a, b ) || byName( a, b )

!!1 === true;
!!-1 === true;
1 || 0 === 1;
-1 || 1 === -1
// и т.д.
Ответ написан
Lastor
@Lastor Автор вопроса
В чем сила, брат? В ньютонах.
const sortByJob = (d1, d2) => (d1.job_id < d2.job_id) ? 1 : (d1.job_id === d2.job_id) ? ((d1.last_name > d2.last_name) ? 1 : -1) : -1

Неужели так?
Тогда я хочу обратно в sql: ORDER BY job_id, last_name
=)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект