Flash Player 5;附加功能在 Flash Player 7 中已添加。
my_array
.sort()
my_array
.sort(
compareFunction
)
my_array
.sort(
option
|option
|...)
my_array
.sort(
compareFunction
,option
|option
|...)
compareFunction
一个用来确定数组中元素排序顺序的可选比较函数。给定元素 A 和 B,compareFunction
的结果可具有以下三个值之一:
option
由 |(按位 OR)
运算符分隔的一个或多个数字或字符串,这些数字或字符串更改根据默认值排序的行为。下面是 option
可以接受的值:
Array.CASEINSENSITIVE
Array.DESCENDING
Array.UNIQUE
Array.RETURNINDEXEDARRAY
Array.NUMERIC
有关此参数的信息,请参见 Array.sortOn()。
返回值取决于是否传递任何参数:
option
指定值 4 或 Array.UNIQUE,并且所排序的两个或多个元素具有相同的排序字段,则 Flash 返回值 0 并且不修改该数组。 option
指定值 8 或 Array.RETURNINDEXEDARRAY,则 Flash 将返回反映排序结果的数组并且不修改该数组。 方法;对数组中的元素进行排序。Flash 根据 ASCII (Unicode) 值排序。如果所比较的两个元素中的任何一个不包含在 fieldName
参数中指定的字段,则认为该字段是 undefined
,并且在排序后的数组中不按任何特定顺序连续放置这些元素。
默认情况下,Array
.sort()
按如下方式工作:
如果您要以其它方式排序,则创建一个进行所需排序的函数并将其名称传递给compareFunction
参数。例如,如果您要按姓氏以字母顺序的升序排序,然后按邮编以降序排序,则可以创建相应的函数并传递其名称。
如果您要指定作为排序依据的一个或多个字段,并且使用默认排序或 options
参数,则使用 Array.sortOn()。
用法 1:以下示例显示如何使用 Array.sort(),以具有和不具有为 option
传递的值这两种情况为例:
var fruits_array = ["oranges", "apples", "strawberries", "pineapples", "cherries"];
trace(fruits_array.join());
fruits_array.sort();
trace(fruits_array.join());
fruits_array.sort(Array.DESCENDING);
trace(fruits_array.join());
“输出”面板将显示以下结果:
oranges,apples,strawberries,pineapples,cherries // 原始数组
apples,cherries,oranges,pineapples,strawberries // 默认排序
strawberries,pineapples,oranges,cherries,apples // 降序
用法 2:以下示例将 Array.sort()
与比较函数一起使用。
var passwords = ["mom:glam","ana:ring","jay:mag","anne:home","regina:silly"]; function order (a,b){ //要排序的条目采用 name:password 的形式 //只将条目的名称部分作为关键字排序。 var name1 =a.split(":")[0 ]; var name2 =b.split(":")[0 ]; if (name1 <name2){ return -1; } else if (name1 >name2){ return 1; } else { return 0; } } trace ("Unsorted:"); trace (passwords.join()); passwords.sort(order); trace ("Sorted:"); trace (passwords.join());
“输出”面板将显示以下结果:
Unsorted: mom:glam,ana:ring,jay:mag,anne:home,regina:silly Sorted: ana:ring,anne:home,jay:mag,mom:glam,regina:silly