Javascript Array.sort () не удовлетворяет полному правилу сортировки - PullRequest
0 голосов
/ 01 апреля 2020

Я не думаю (надеюсь), что это еще один из тех тысяч банальных вопросов Array.sort (в основном неправильные типы данных).

Итак, я пытаюсь сделать следующее:

[1, 3, 2, 7, 9, 4].sort((a, b) => a % 2 === 0 && b % 2 === 0 ? b - a : a - b)

, то есть пары четных чисел должны быть упорядочены в порядке убывания, остальные в порядке возрастания, как обычно.

Что я получаю, это

[1, 2, 3, 4, 7, 9]

, что не удивительно, поскольку сравниваются только эти пары:

[1, 3]
[3, 2]
[1, 2]
[3, 7]
[7, 9]
[9, 4]
[7, 4]
[3, 4]

Таким образом, 2 и 4 никогда не сравниваются друг с другом. Таким образом, только одно из моих правил сравнения фактически соблюдается в результате. Чего мне не хватает?

Вот результат, который я ожидаю:

[1, 3, 4, 7, 9, 2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...