Array.sort
Синтаксис
myArray.sort();
myArray.sort(orderfunc);
Аргументы
orderfunc Произвольная сравнивающая функция, определяющая порядок сортировки. Учитывая аргументы А и В, указанная функция должна выполнять сортировку следующим образом:
-1 если A появляется прежде чем B в сортируемой последовательности | |
0 если A = B | |
1 если A появляется после B в сортируемой последовательности |
Описание
Метод; сортирует массив на месте, т.е. без создания копии. Если аргумент orderfunc не указан, Flash сортирует элементы, используя оператор <.
Player
Flash 5 или выше.
Пример
Используем Array.sort без определения аргумента orderfunc:
var fruits = ["oranges", "apples", "strawberries",
"pineapples", "cherries"];
trace(fruits.join());
fruits.sort();
trace(fruits.join());
Получаем:
oranges,apples,strawberries,pineapples,cherries
apples,cherries,oranges,pineapples,strawberries
Используем Array.sort, определяя аргумент orderfunc:
var passwords = [
"gary:foo",
"mike:bar",
"john:snafu",
"steve:yuck",
"daniel:1234"
];
function order (a, b) {
// Элементы записаны в форме
// name:password
// Сортируем, используя в качестве ключа
// только часть name.
var name1 = a.split(':')[0];
var name2 = b.split(':')[0];
if (name1 < name2) {
return -1;
} else if (name1 > name2) {
return 1;
} else {
return 0;
}
}
for (var i=0; i< password.length; i++) {
trace (passwords.join());
}
passwords.sort(order);
trace ("Sorted:");
for (var i=0; i< password.length; i++) {
trace (passwords.join());
}
Получаем:
daniel:1234
gary:foo
john:snafu
mike:bar
steve:yuck