javascript сортировка массива по убыванию

В ДжаваСкрипте отсортировать массив можно при помощи функции Array.sort([sortFunction]). Если не передавать функцию сортировки sortFunction , то массив будет отсортирован в порядке следования символов таблицы ASCII, проще по-алфавиту.

Чтобы отсортировать числовой массив в порядке возрастания значений, необходимо передавать функцию сортировки.

Сортировка числового массива по-возрастанию

Функция сортировки принимает два значения массива для сравнения.

Для сортировки по-возрастанию необходимо вернуть результат вычитания второго значения из первого.

В консоль отладчика будет выведен отсортированный по-возрастанию массив:

Сортировка числового массива по-убыванию

В сортировке по-убыванию все тоже самое, только нужно возвращать результат вычитания первого значения из второго.

Информация в консоли отладчика будет следующая:

Категории

Читайте также

Комментарии

Привет. Научи как получить из массива рандомное число элементов? Например, не меньше 17 и не более 26 , но всегда разное в этом диапазоне? И сохранять все в переменную. Очень поможешь !

Введите данные указанные при регистрации:

Социальные сети

Вы можете быстро войти через социальные сети:

В JavaScript можно сортировать массивы с помощью метода sort. В качестве единственного необязательного аргумента метод принимает функцию, определяющую правила сортировки. Если sort вызвали без аргументов, то сортировка осуществляется по возрастанию значений элементов. Пример:

Сортируется массив, в контексте которого вызван метод, так что если вы желаете сохранить исходное состояние — сделайте копию и сортируйте её.
Функции сортировки

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

* положительное (1,2,10), если условие сортировки истинно;
* отрицательное (-0.1, -3, -20), если условие сортировки ложно;
* 0, если сравниваемые значения равны.

На первый взгляд может показаться, что сортировка в JavaScript непроизводительна, и в web-приложениях лучше сортировать данные на server-side. Небольшой эксперимент это опровергает. Будьте осторожны, в циклах на 100.000 элементов браузер может зависнуть!

Сортируем массивы c целочисленными значениями различной длины:
Нет данных

Автор, в ходе своих экспериментов на своем PC (Vista, Pentium Dual 2.2Ггц, 2Гб RAM) получил следующие результаты:
1000 10.000 100.000
IE 7 20-50 ms 200-650 ms завис
FF 3 1-2 ms 12-30 ms 150-400 ms
Safari 3 2-30 ms * 30-400 ms * 350-5000 ms *
Opera 9.5 2-5 ms 40-75 ms 500-1000 ms
Chrome 1.0 1-2 ms 10-30 ms 100-300ms

* В Safari случайная сортировка занимала ровно на порядок больше времени, чем сортировка по возрастанию/убыванию.

За исключением Internet Explorer, который не смог переварить массив на 100.000 элементов, сортировка показала себя вполне производительной операцией.
Многомерный массив

При необходимости можно усложнить функции сортировки. Например, чтобы сортировать многомерные массивы (массивы массивов), или массивы объектов, или любой другой массив с нетривиальными значениями. Пример:

Сортировка массива

Метод sort() сортирует массив по алфавиту:

Пример

Реверсирование массива

Метод reverse() отменяет элементы в массиве.

Его можно использовать для сортировки массива по убыванию:

Пример

Сортировка чисел

По умолчанию функция sort() сортирует значения строк.

Очень хорошо работает для строк ( «Яблоко» раньше будет «Банан» ).

Однако, если числа сортируются как строки, то 25 это больше, чем 100 , потому что 2 это больше, чем 1 .

Поэтому метод sort() при сортировке выдаст неверный результат чисел.

Вы можете исправить, предоставив функцию сравнения:

Пример

Используйте тот же трюк, чтобы отсортировать массив по убыванию:

Пример

Функция сравнения

Функция сравнения предназначена для определения альтернативного порядка сортировки.

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

Когда функция sort() сравнивает два значения, она отправляет значения сравнить функцию и сортирует значения по возврату (минус, нулевое, положительное) значение.

Пример:

При сравнении 40 и 100 метод sort() вызывает функцию сравнения (40,100).

Функция вычисляет 40-100, и возвращает -60 (отрицательное значение).

Функция сортировки сортирует 40 как значение ниже 100.

Этот фрагмент кода можно использовать для сортировки чисел и сортировки по алфавиту:

Сортировать по алфавиту
Сортировать по числам

Оцените статью
SoftLast
Добавить комментарий