Array.sort()

可用性

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.sortOn()

返回

返回值取决于是否传递任何参数:

说明

方法;对数组中的元素进行排序。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

另请参见

|(按位 OR)Array.sortOn()