Метод sort() упорядочивает элементы массива в соответствии с любым заданным правилом. Если правило не задано, то sort() по умолчанию размещает элементы в алфавитном порядке. Отсортировать массив по алфавиту очень просто: arrayName.sort();
При вызове метода массива sort() без аргументов его элементы временно преобразуются в строки и сортируются в соответствии с кодовыми позициями Unicode.
var app= ["zinc", "air"];
app.sort();
trace(app); // выводит "air, zinc"
var app = ["Zinc", "air"]
app.sort();
trace(app); // выводит "Zinc, air".
sort() можно применять для сортировки элементов маассива в соответствии с собственными правилами. Для этого требуется создать функцию сравнения, которая будет определять, как интерпретатор должен сортировать любые два элемента массива. Затем эта функция передается методу sort()
Давайте создадим новую функцию, которая принимает два аргумента. В теле функции будет определяться порядок отображения элементов массива. Если требуется, чтобы первый элемент возвратился раньше второго, то функция должна возвратить отрицательное число. Если первый элемент должен вернуться пожже второго - функция должна возвратить положительное число. Если элементы должны оставаться в исходном положении, функция должна вернуть 0.
Итак, отсортируем элементы массива по возрастанию числовых значений:
function sortAscendingNumbers(el1, el2) {
if (el1el2) {
return 1;
} else {
return 0;
}
}
//Опробуем нашу функцию сравнения
var x = [26,51,38,1,200];
x.sort(sortAscendingNumbers);
trace(x);
Кстати, функцию сравнения чисел можно сформулировать в более кратком варианте:
function sortAscendingNumbers(el1, el2) {
return el1-el2;
}
Думаю, вы уловили смысл
Отрицательное число вернется, если el1 меньше el2, положительное - если el1 больше el2, а 0 - при равенстве el1 и el2.
Если вам требуется сортировать элементы по убыванию, просто замените return el1-el2; на return el2-el1;.
Ваши вопросы, пожалуйста!)
Спонсор поста: Поиск работы, вакансии в москве и не только.
Апрель 23rd, 2009 |