![]() ![]() ![]() | |
![]() | |
![]() | |
![]() |
Flash Player 6; se han añadido funciones adicionales en Flash Player 7.
my_array
.sortOn("fieldName
" )my_array
.sortOn("fieldName
",option
|option
|... )my_array
.sortOn( [ "fieldName
" , "fieldName
" , ... ] )my_array
.sortOn( [ "fieldName
" , "fieldName
" , ... ] ,option
|option
|... )
Nota: si se muestran corchetes ([]), debe incluirlos en el código; es decir, los corchetes no representan parámetros opcionales.
fieldName
Cadena que identifica un campo (de un elemento de la matriz) que debe utilizarse como valor de clasificación.
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:
Array.CASEINSENSITIVE
Array.DESCENDING
Array.UNIQUE
Array.RETURNINDEXEDARRAY
Array.NUMERIC
Cada una de estas opciones se explica con mayor detalle en "Descripción", a continuación.
El valor devuelto depende de si se pasa algún parámetro:
option
y dos o más de los elementos que se están ordenando tienen campos de clasificación idénticos, Flash devuelve un valor de 0 y no modifica la matriz. option
, Flash devuelve una matriz que refleja el resultado de la clasificación y no modifica la matriz. Método; ordena los elementos de una matriz según uno o más campos de la matriz. Si pasa varios parámetros fieldName
, el primer campo representa el campo de clasificación principal, el segundo representa el siguiente campo de clasificación, y así sucesivamente. 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
.sortOn()
funciona de esta manera:
Puede utilizar las etiquetas option
para omitir estos valores predeterminados. Los siguientes ejemplos utilizan diferentes etiquetas option
a efectos ilustrativos. Si quiere ordenar una matriz sencilla (por ejemplo, una matriz con un sólo campo) o si desea especificar un orden de clasificación no admitido por el parámetro options
, utilice Array.sort()
.
Para pasar varias etiquetas en formato numérico, sepárelas con el operador |
(OR en modo bit)
o sume los valores de los indicadores. El código siguiente muestra tres maneras diferentes de especificar una clasificación numérica descendente:
my_Array.sortOn(nombreCampo, 2 | 16); my_Array.sortOn(nombreCampo, 18); my_Array.sortOn(nombreCampo, Array.DESCENDING | Array.NUMERIC);
Las sugerencias para el código (véase Utilización de las sugerencias para el código) están habilitadas si utiliza la forma de cadena de la etiqueta (por ejemplo, DESCENDING
) en lugar de la forma numérica (2).
Considere la siguiente matriz:
var my_array:Array = new Array(); my_array.push({contraseña: "Bob", edad:29}); my_array.push({contraseña: "abcd", edad:3}); my_array.push({contraseña: "barb", edad:35}); my_array.push({contraseña: "catchy", edad:4});
Una clasificación predeterminada del campo de contraseña daría como resultado:
my_array.sortOn("contraseña") // Bob // abcd // barb // catchy
Una clasificación que no distinga entre mayúsculas y minúsculas del campo de contraseña daría como resultado:
my_array.sortOn("contraseña", Array.CASEINSENSITIVE) // abcd // barb // Bob // catchy
Una clasificación que no distinga entre mayúsculas y minúsculas, en orden descendente, del campo de contraseña daría como resultado:
my_array.sortOn("contraseña", 1|2) // catchy // Bob // barb // abcd
Una clasificación predeterminada del campo de edad daría como resultado:
my_array.sortOn("edad") // 29 // 3 // 35 // 4
Una clasificación numérica del campo de edad daría como resultado:
my_array.sortOn("edad", 16) // 3 // 4 // 29 // 35
Una clasificación numérica, en orden descendente, del campo de edad daría como resultado:
my_array.sortOn("edad", 18) // 35 // 29 // 4 // 3
Llevar a cabo una clasificación cambia los elementos de la matriz de la siguiente manera:
// Antes de clasificar
// my_array[0].edad = 29;
// my_array[1].edad = 3;
// my_array[2].edad = 35;
// my_array[3].edad = 4;
// Después de una clasificación que no pase 8 como valor de option
my_array.sortOn("edad", Array.NUMERIC);
// my_array[0].edad = 3;
// my_array[1].edad = 4;
// my_array[2].edad = 29;
// my_array[3].edad = 35;
Llevar a cabo una clasificación que devuelva una matriz de orden no cambia los elementos de la matriz:
// Antes de clasificar
// my_array[0].edad = 29;
// my_array[1].edad = 3;
// my_array[2].edad = 35;
// my_array[3].edad = 4;
// Después de una clasificación que devuelve una matriz que contiene valores de índice
// Observe que no se ha modificado la matriz original.
// Puede utilizar la matriz devuelta para mostrar información ordenada
// sin modificar la matriz original.
var indexArray:Array = my_array.sortOn("edad", Array.RETURNINDEXEDARRAY
);
// my_array[0].edad = 29;
// my_array[1].edad = 3;
// my_array[2].edad = 35;
// my_array[3].edad = 4;
Este ejemplo crea una nueva matriz y la ordena según los campos name
y city
: la primera clasificación utiliza name
como primer valor de clasificación y city
como el segundo. La primera clasificación utiliza city
como primer valor de clasificación y name
como el segundo.
var rec_array = new Array(); rec_array.push( { name: "john", city: "omaha", zip: 68144 } ); rec_array.push( { name: "john", city: "kansas city", zip: 72345 } ); rec_array.push( { name: "bob", city: "omaha", zip: 94010 } ); for(i=0; i<rec_array.length; i++) { trace(rec_array[i].name + ", " + rec_array[i].city); } // da lugar a // john, omaha // john, kansas city // bob, omaha rec_array.sortOn( [ "name", "city" ]); for(i=0; i<rec_array.length; i++) { trace(rec_array[i].name + ", " + rec_array[i].city); } // da lugar a // bob, omaha // john, kansas city // john, omaha rec_array.sortOn( ["city", "name" ]); for(i=0; i<rec_array.length; i++) { trace(rec_array[i].name + ", " + rec_array[i].city); } // da lugar a // john, kansas city // bob, omaha // john, omaha
| (OR en modo bit)
, Array.sort()
![]() | |
![]() | |
![]() | |
![]() ![]() ![]() |