A-C > Array.sort

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