User Guide
Array.sort() 115
By default, Array.sort() works as described in the following list:
• Sorting is case-sensitive (Z precedes a).
• Sorting is ascending (a precedes b).
• The array is modified to reflect the sort order; multiple elements that have identical sort fields
are placed consecutively in the sorted array in no particular order.
• Numeric fields are sorted as if they were strings, so 100 precedes 99, because “1” is a lower
string value than “9”.
If you want to sort in another way, create a function to do the sorting and pass its name as the
compareFunction parameter. You might do this, for example, if you want to sort alphabetically
by last name, ascending, and then by ZIP code, descending.
If you want to specify one or more fields on which to sort, using either the default sort or the
options parameter, use Array.sortOn().
Example
Usage 1: The following example shows the use of Array.sort() with and without a value passed
for
option:
var fruits_array:Array = new Array("oranges", "apples", "strawberries",
"pineapples", "cherries");
trace(fruits_array); // displays
oranges,apples,strawberries,pineapples,cherries
fruits_array.sort();
trace(fruits_array); // displays
apples,cherries,oranges,pineapples,strawberries
fruits_array.sort(Array.DESCENDING);
trace(fruits_array); // displays
strawberries,pineapples,oranges,cherries,apples
Usage 2: The following example uses Array.sort() with a compare function:
var passwords_array:Array = new Array("mom:glam", "ana:ring", "jay:mag",
"anne:home", "regina:silly");
function order(a, b):Number {
//Entries to be sorted are in form name:password
//Sort using only the name part of the entry as a key.
var name1:String = a.split(":")[0];
var name2:String = b.split(":")[0];
if (name1<name2) {
return -1;
} else if (name1>name2) {
return 1;
} else {
return 0;
}
}
trace("Unsorted:");
//displays Unsorted:
trace(passwords_array);
//displays mom:glam,ana:ring,jay:mag,anne:home,regina:silly
passwords_array.sort(order);