Лекция: Метод sort()

Метод sort() интерпретирует элементы массива как строковые литералы и сортирует массив в алфавитном (т.н. лексикографическом) порядке. Обратите внимание: метод sort() меняет массив. В предыдущем примере, применивa.sort(), мы получим на выходе:

Однако, это неудобно, если требуется отсортировать числа, поскольку согласно алфавитному порядку 40 идет раньше чем 5. Для этих целей у метода sort() имеется необязательный аргумент, являющийся именем функции, согласно которой требуется отсортировать массив, т.е. в этом случае вызов метода имеет вид: a.sort(myfunction). Эта функция должна удовлетворятьопределенным требованиям:

· у нее должно быть ровно два аргумента;

· функция должна возвращать число;

· если первый аргумент функции должен считаться меньшим (большим, равным) чем второй аргумент, то функция должна возвратить отрицательное (положительное, ноль) значение.

Например, если нам требуется сортировать числа, то мы можем описать следующую функцию:

Теперь, если у нас есть массив b = new Array(10,6,300,25,18);, то можно сравнить результаты сортировки без аргумента и с функцией compar в качестве аргумента:

В результате выполнения этого кода получим следующее:

Обратите внимание: метод sort() интерпретирует элементы массива как строки (и производит лексикографическую сортировку), но не преобразует их в строки. Если в массиве были числа, то они числами и останутся. В этом легко убедиться, если в конце последнего примера выполнить команду document.write(b[3]+1): результат будет 26 (т.е. 25+1 ), а не 251(т.е. «25»+«1» ).

еще рефераты
Еще работы по информатике