Сортирует элементы массива

Спецификация: ECMAScript 1-е издание.
array.sort(compareFunction)

Параметры

compareFunction
Необязательный параметр.Имя функции, применяемой для определения порядка элементов.Если этот аргумент опущен, элементы сортируются по возрастанию в порядке сортировки символов ASCII.

Ссылка на массив. Обратите внимание: массив сортируется на месте, копия массива не делается.

Метод sort() сортирует элементы массива на месте без создания копии массива. Если sort() вызывается без аргументов, элементы массива располагаются в алфавитном порядке (точнее, на основе сравнения ASCII-кодов символов значений). Чтобы отсортировать массив, sort() вы­зывает функцию приведения типов String() для каждого элемента, а затем срав­нивает возвращенные строки. Это происходит, даже если массив содержит только числа, например:

Выполнить код »

В этом примере метод sort() сортирует числа как строки. Поэтому строка "10" располагается в итоговом массиве раньше, чем "5", хотя число 10 больше. Во многих случаях требуется совсем не это, поэтому в метод sort() можно передать функцию сравнения (comparison function), которая упорядочивает два значения.

Функция сравнения должна принимать два аргумента a и b, и возвращать одно из следующих значений:

  • Отрицательное число, если в соответствии с выбранным критерием сортировки значение a «меньше» значения b и должно находиться в отсортированном массиве перед b.
  • Ноль, если a и b в смысле сортировки эквивалентны.
  • Положительное число, если значение a «больше» значения b.

На заметку: Неопределенные элементы при сортировке всегда оказываются в конце массива. Это происходит, даже если указана специальная функция сортировки: неопределенные значения никогда не передаются в заданную функцию compareFunction.

В следующем примере показано использование функции в качестве параметра метода sort(). Сортировка чисел в массиве осуществляется в порядке возрастания:

Выполнить код »

Сортировка чисел в массиве в порядке убывания:

Выполнить код »

Получение максимального значения в массиве:

Выполнить код »

Сортировка массив в алфавитном порядке, с последующим изменением порядка отсортированных элементов (по убыванию):

Выполнить код »

Комментарии

пожелания к комментариям…
  • Приветствуются комментарии, соответствующие теме урока: вопросы, ответы, предложения.
  • Одну строчку кода оборачивайте в тег <code>, несколько строчек кода — в теги <pre><code>...ваш код...</code></pre>.
  • Допускаются ссылки на онлайн-песочницы (codepen, plnkr, JSBin и др.).