Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.09.2018, 21:30
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

Сложная сортировка массива с помощью метода sort()
Здравствуйте. Есть массив:
[-2, 2, 4, 6, 8, 10, 3, 5, 7, 9, -1, -11]

Нужно преобразовать его, чтобы он удовлетворял условиям:
  1. вначале числа кратные двум, от наибольшего к наименьшему.
  2. затем оставшиеся числа от наименьшего к наибольшему.
На выходе должен получиться массив:
[ 10, 8, 6, 4, 2, -2, -11, -1, 3, 5, 7, 9 ]

Я написал адскую функцию, которая делает это, приводить её тут не вижу смысла. Можно ли за один прогон с помощью sort() отсортировать как надо?
function sortArr(array) {
            return array.sort((a, b) => {

                if (a % 2 === 0 && b % 2 === 0 && a < b) {
                    return 1;
                }

            });
        }

Эта функция реализует первую часть требований, как её переписать, чтобы удовлетворяла обоим что-то не соображу, есть идеи?
Ответить с цитированием
  #2 (permalink)  
Старый 25.09.2018, 22:12
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Просто берёшь и описываешь пошагово всю логику, какие проблемы:
alert(
[-2, 2, 4, 6, 8, 10, 3, 5, 7, 9, -1, -11].sort(function(a, b){
  if(a === b) return 0;

  var amod = a % 2 === 0;
  var bmod = b % 2 === 0;
  
  if(amod && bmod)
    return a > b ? -1 : 1
  if(!amod && !bmod)
    return a > b ? 1 : -1
  if(amod)
    return -1
  if(bmod)
    return 1
})
)
Потом уже можешь свернуть и сократить, но это дело десятое.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод и сортировка массива Neotwalker Элементы интерфейса 2 05.04.2018 00:14
Как получить id из php массива с помощью JS? angel026 Javascript под браузер 4 27.03.2018 00:45
Непростая задача, сортировка массива Gerd199 Общие вопросы Javascript 0 15.02.2016 03:22
Сортировка массива по возрастанию другого массива. vas88811 Events/DOM/Window 4 12.01.2014 10:31
Сортировка массива по ключу RazZzeR Элементы интерфейса 9 21.07.2012 19:31