Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Метод sort()



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

a[0]='видит';a[1]='дочь';a[2]='мать';

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

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

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

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

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

function compar(a,b){ if(a < b) return -1; if(a > b) return 1; if(a == b) return 0;}

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

document.write("Алфавитный порядок:<BR>");document.write(b.sort());document.write("<BR>Числовой порядок:<BR>");document.write(b.sort(compar));

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

Алфавитный порядок:10,18,25,300,6Числовой порядок:6,10,18,25,300

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





Дата публикования: 2015-01-24; Прочитано: 213 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...