User Guide
118 Chapter 2: ActionScript Language Reference
By default, Array.sortOn() 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”.
You can use the
option flags to override these defaults. The following examples use different
forms of the
option flag for illustration purposes. If you want to sort a simple array (for example,
an array with only one field), or if you want to specify a sort order that the
options parameter
doesn’t support, use Array.sort().
To pass multiple flags in numeric format, separate them with the bitwise OR (
|) operator or add
the values of the flags together. The following code shows three ways to specify a numeric
descending sort:
my_array.sortOn(someFieldName, 2 | 16);
my_array.sortOn(someFieldName, 18);
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
Code hinting (see “Using code hints” in Using ActionScript in Flash) is enabled if you use the
string form of the flag (for example,
DESCENDING) rather than the numeric form (2).
Consider the following array:
var my_array:Array = new Array();
my_array.push({password: "Bob", age:29});
my_array.push({password: "abcd", age:3});
my_array.push({password: "barb", age:35});
my_array.push({password: "catchy", age:4});
Performing a default sort on the password field produces the following results:
my_array.sortOn("password");
// Bob
// abcd
// barb
// catchy
Performing a case-insensitive sort on the password field produces the following results:
my_array.sortOn("password", Array.CASEINSENSITIVE);
// abcd
// barb
// Bob
// catchy
Performing a case-insensitive, descending sort on the password field produces the following
results:
my_array.sortOn("password", 1|2);
// catchy
// Bob