![]() ![]()  | |
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.CASEINSENSITIVEArray.DESCENDINGArray.UNIQUEArray.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
![]() ![]()  | |