Учебник JavaScript - сортировка числовой массив
В JavaScript, когда вы хотите отсортировать массив он получает отсортированы по алфавиту. Это означает, что номера сортируются на основе первой цифрой, происходящих в системе счисления (1 - 9), а не путем сравнения стоимости. Так что, если я хочу, чтобы сортировать массив со значениями 10,12,11,20,2,25,30 получает отсортировано по 10,12,11,20,2,25,30 использованием встроенного массива JavaScript рода методом.
Пример - традиционный метод сортировки массива
"text/javascript" > <Скрипт типа = "текст / JavaScript"> new Array ( 10 , 12 , 11 , 20 , 2 , 25 , 30 ) ; VAR = марок нового Array (10, 12, 11, 20, 2, 25, 30); ; марок. сортировать (); marks ) ; документа. написать (марок); </> Сценарий
Вывод: 10,11,12,2,20,25,30
Здесь вы видите, что число 2 идет после 12 и до 20 до номера получить вид на основе первой цифрой, а следующей цифре.
Так для сортировки массива в JavaScript Численно следующие методы могут быть использованы:
Сортировать пузыря
Это один из традиционных методов сортировки, используемые в структуры данных в C, C + + Языки программирования. В этой технике номера сравниваются друг с другом и в зависимости от ценностей, которые они поменяются местами.
Пример - Сортировка использованием пузыря Сортировать Техника"text/javascript" > <Скрипт типа = "текст / JavaScript"> new Array ( 10 , 12 , 11 , 20 , 2 ) ; VAR = марок нового Array (10, 12, 11, 20, 2); var i = 0 ; i < marks . length ; i ++ ) //Hold the first element для (VAR = 0; я <знаков. длину; я + +) / / Hold первый элемент ( var j = i + 1 ; j < marks. length ; j ++ ) //Hold the next element from the first element для VAR (J = I + 1; полярность <. длину; к + +) / / Hold следующий элемент из первого элемента ( Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element если (номер (знаки [я])> номер (знаки [у])) / / сравнения первый и следующий элемент ( j ] ; tempValue = знаки [у]; = marks [ i ] ; знаки [у] = знаки [я]; = tempValue ; знаки [г] = tempValue; ) ) ) marks ) ; документа. написать (марок); script > </ Марки> </> сценарийВывод: 2,10,11,12,20
Здесь вы видите, что я создаю временную переменную для хранения значения, так что данные могут быть обменены.
Использование прототипа функции
Protoype функции в JavaScript можно переопределить существующие функциональности объекта. Так что теперь с этим методом, можно сделать array.sort числовые операции рода условии, что вы предоставили функциональность для сортировки числовых данных.
Пример - прототип функции"text/javascript" > Array. prototype . sort = function ( ) { for ( i = 0 ; i < this . length ; i ++ ) { for ( j = i + 1 ; j < this. length ; j ++ ) { if ( Number ( this [ i ] ) > Number ( this [ j ] ) ) { tempValue = this [ j ] ; this [ j ] = this [ i ] ; this [ i ] = tempValue ; } } } } var marks = new Array ( 10 , 12 , 11 , 20 , 2 ) ; marks. sort ( ) ; document. write ( marks ) ; </ this ></ script > <Скрипт типа = "текст / JavaScript"> Array. Прототипа. Сортировать = функция () (для (я = 0; я <это. Длину; я + +) (для (J = I + 1; у <это. Длину ; к + +) (если (номер (это [я])> номер (это [у])) (tempValue = это [у], что [у] = это [г], что я] [= tempValue;) ))) = уаг марок нового Array (10, 12, 11, 20, 2); знаков. сортировать (); документ. написать (марок); </ это> </> сценарийВывод: 2,10,11,12,20
Я здесь главная существующий метод сортировать массив, вызывая метод пузырь рода внутри него. Так что теперь. Сортировать () метод сортировки численно, а не в алфавитном порядке.
Изменение функциональность существующих Сортировать Метод
В этом приеме мы передадим параметр функции массив рода, которая является функцией, которая содержит инструкции о том, чтобы сравнить элементы массива.
Пример:"text/javascript" > <Скрипт типа = "текст / JavaScript"> a , b ) //Sort array in ascending order Функция ArraySortAscending (б) / / Сортировка массива в порядке возрастания ( a - b ) ; возвращения (а - б); ) a , b ) //Sort array in descending order Функция ArraySortDescending (б) / / Сортировка массива в порядке убывания ( b - a ) ; возвращения (Ь - а); ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; VAR = марок нового Array (10, 12, 11, 20, 2); ArraySortAscending ) ; //This will sort the array in ascending order марок. сортировки (ArraySortAscending); / / Это будет сортировать массив в порядке возрастания marks + ' \n ' ) ; документа. написать (+ п '' \ знаки); new Array ( 10 , 12 , 11 , 20 , 2 ) ; VAR = марок нового Array (10, 12, 11, 20, 2); ArraySortDescending ) ; //This will sort the array in descending order марок. сортировки (ArraySortDescending); / / Это будет сортировать массив в порядке убывания marks ) ; документа. написать (марок); </> СценарийВывод:
2,10,11,12,20
20,12,11,10,2



































