Array.sort()

Disponibilidad

Flash Player 5; se han añadido funciones adicionales en Flash Player 7.

Sintaxis

my_array.sort()
my_array.sort(compareFunction)
my_array.sort(option | option |... )
my_array.sort(compareFunction, option | option |... )

Parámetros

compareFunction Función de comparación opcional que se utiliza para determinar el orden de los elementos de una matriz. Dados los elementos A y B, el resultado de compareFunction puede tener uno de los tres valores siguientes:

option Uno o más números o cadenas, separados por el operador | (OR en modo bit), que cambian el comportamiento o la clasificación respecto al predeterminado. Los siguientes valores de option son aceptables:

Para más información sobre este parámetro, consulte Array.sortOn().

Valor devuelto

El valor devuelto depende de si se pasa algún parámetro:

Descripción

Método; ordena los elementos de una matriz. Flash ordena siguiendo valores ASCII (Unicode). Si alguno de los elementos que se están ordenando no contiene el campo especificado en el parámetro fieldName, se interpreta el campo como undefined, y los elementos se sitúan de manera consecutiva en la matriz sin ningún orden en particular.

De forma predeterminada, Array.sort() funciona de esta manera:

Si desea clasificar según otro orden, cree una función que realice la clasificación y pase su nombre como parámetro compareFunction. Puede hacer esto, por ejemplo, si desea ordenar alfabéticamente por apellido, en orden ascendente, y luego por código postal, en orden descendente.

Si desea especificar uno o más campos por los que ordenar, utilizando la clasificación predeterminada o el parámetro options, utilice Array.sortOn().

Ejemplo

Sintaxis 1: el ejemplo siguiente muestra el uso de Array.sort() con y sin pasar un valor para option:

var fruits_array = ["naranjas", "manzanas", "fresas", "piñas", "cerezas"];
trace(fruits_array.join());
fruits_array.sort();
trace(fruits_array.join());
fruits_array.sort(Array.DESCENDING);
trace(fruits_array.join());

El panel Salida muestra el resultado siguiente:

naranjas,manzanas,fresas,piñas,cerezas   // matriz original
manzanas,cerezas,naranjas,piñas,fresas  // clasificación predeterminada
fresas,piñas,naranjas,cerezas,manzanas  // orden descendente

Sintaxis 2: en el ejemplo siguiente se utiliza Array.sort() con una función de comparación.

var contraseñas = ["mom:glam","ana:ring","jay:mag","anne:home","regina:silly"];
function order (a,b){
  //Las entradas que deben ordenarse tienen el formato nombre:contraseña
  //Se ordenan utilizando solamente la parte del nombre de la entrada como clave
  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());

El panel Salida muestra el resultado siguiente:

Sin ordenar:
mom:glam,ana:ring,jay:mag,anne:home,regina:silly
Ordenado:
ana:ring,anne:home,jay:mag,mom:glam,regina:silly

Véase también

| (OR en modo bit), Array.sortOn()