PaqueteNivel superior
Clasepublic dynamic class Array
HerenciaArray Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase Array le permite obtener acceso a matrices y manipularlas. Los índices de matrices están basados en cero, lo que significa que el primer elemento de la matriz es [0], el segundo elemento, [1], y así sucesivamente. Para crear un objeto Array, deberá utilizar el constructor new Array(). Array() también puede invocarse como función. Además, puede utilizar el operador de acceso a una matriz ([]) para inicializar una matriz u obtener acceso a elementos de una matriz.

Puede almacenar una amplia variedad de tipos de datos en un elemento de matriz, incluidos números, cadenas, objetos e incluso otras matrices. Puede crear una matriz multidimensional creando una matriz indexada y asignando a cada uno de sus elementos una matriz indexada distinta. Una matriz de este tipo se considera multidimensional porque puede emplearse para representar datos en una tabla.

Las matrices son matrices dispersas, lo que significa que puede haber un elemento en el índice 0 y otro en el índice 5, pero nada en las posiciones de índice intermedias. En este caso, los elementos situados en las posiciones 1 a 4 son indefinidos, lo que indica la ausencia de un elemento, no necesariamente la presencia de un elemento con el valor undefined.

La asignación de matriz se hace por referencia en lugar de por valor. Cuando se asigna una variable de matriz a otra variable de matriz, ambas hacen referencia a la misma matriz:

 var oneArray:Array = new Array("a", "b", "c");
 var twoArray:Array = oneArray; // Both array variables refer to the same array.
 twoArray[0] = "z";
 trace(oneArray);               // Output: z,b,c.
 

No utilice la clase Array para crear matrices asociativas (también conocidas como hashes), que son estructuras de datos que contienen elementos con nombre en lugar de elementos numerados. Para crear matrices asociativas, utilice la clase Object. Si bien ActionScript permite crear matrices asociativas empleando la clase Array, no es posible utilizar ninguno de los métodos o las propiedades de la clase Array con matrices asociativas.

Puede ampliar la clase Array y anular o añadir métodos. Sin embargo, debe especificar la subclase como dynamic o, de lo contrario, perderá la capacidad para almacenar datos en una matriz.

Ver los ejemplos

Véase también

[] (acceso a matriz)
Clase Object
Parámetros de función


Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  length : uint
Entero no negativo que especifica el número de elementos de la matriz.
Array
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
Array(numElements:int = 0)
Le permite crear una matriz con el número especificado de elementos.
Array
  
Array(... values)
Le permite crear una matriz con los elementos especificados.
Array
  
concat(... args):Array
Concatena los elementos especificados en los parámetros con los elementos de una matriz y crea una matriz nueva.
Array
  
every(callback:Function, thisObject:* = null):Boolean
Ejecuta una función de prueba en cada elemento de la matriz hasta que se llega a un elemento que devuelve false para la función especificada.
Array
  
filter(callback:Function, thisObject:* = null):Array
Ejecuta una función de prueba en cada elemento de la matriz y construye una nueva matriz para todos los elementos que devuelven true para la función especificada.
Array
  
forEach(callback:Function, thisObject:* = null):void
Ejecuta una función en cada elemento de la matriz.
Array
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
  
indexOf(searchElement:*, fromIndex:int = 0):int
Busca un elemento en una matriz utilizando el operador de igualdad estricta (===) y devuelve la posición de índice del elemento.
Array
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
  
join(sep:*):String
Convierte los elementos de una matriz en cadenas, inserta el separador especificado entre los elementos, los concatena y devuelve la cadena resultante.
Array
  
lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
Busca un elemento en una matriz hacia atrás desde el último elemento y devuelve la posición de índice del elemento coincidente utilizando el operador de igualdad estricta (===).
Array
  
map(callback:Function, thisObject:* = null):Array
Ejecuta una función en cada elemento de una matriz y construye una nueva matriz de elementos correspondientes a los resultados de la función en cada elemento de la matriz original.
Array
  
pop():*
Elimina el último elemento de una matriz y devuelve el valor de dicho elemento.
Array
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
  
push(... args):uint
Añade uno o varios elementos al final de una matriz y devuelve la nueva longitud de la matriz.
Array
  
Invierte la colocación de la matriz.
Array
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
  
shift():*
Elimina el primer elemento de una matriz y devuelve dicho elemento.
Array
  
slice(startIndex:int = 0, endIndex:int = 16777215):Array
Devuelve una matriz nueva que consta de un rango de elementos de la matriz original sin modificar la matriz original.
Array
  
some(callback:Function, thisObject:* = null):Boolean
Ejecuta una función de prueba en cada elemento de la matriz hasta que se llega a un elemento que devuelve true.
Array
  
sort(... args):Array
Ordena los elementos de una matriz.
Array
  
sortOn(fieldName:Object, options:Object = null):Array
Ordena los elementos de una matriz por uno o varios campos de la matriz.
Array
  
splice(startIndex:int, deleteCount:uint, ... values):Array
Añade y elimina elementos de una matriz.
Array
  
Devuelve una cadena que representa los elementos de la matriz especificada.
Array
  
Devuelve una cadena que representa los elementos de la matriz especificada.
Array
  
unshift(... args):uint
Añade uno o varios elementos al comienzo de una matriz y devuelve la nueva longitud de la matriz.
Array
 Inherited
Devuelve el valor simple del objeto especificado.
Object
Constantes públicas
 ConstanteDefinido por
  CASEINSENSITIVE : uint = 1
[static] Especifica una ordenación con distinción entre mayúsculas y minúsculas para los métodos de ordenación de la clase Array.
Array
  DESCENDING : uint = 2
[static] Especifica una ordenación descendente para los métodos de ordenación de la clase Array.
Array
  NUMERIC : uint = 16
[static] Especifica una ordenación numérica (en lugar de por cadena de caracteres) para los métodos de ordenación de la clase Array.
Array
  RETURNINDEXEDARRAY : uint = 8
[static] Especifica que una ordenación devuelva una matriz formada por los índices de una matriz.
Array
  UNIQUESORT : uint = 4
[static] Especifica el requisito de ordenación exclusivo para los métodos de ordenación de la clase Array.
Array
Información sobre propiedades
lengthpropiedad
length:uint  [read-write]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Entero no negativo que especifica el número de elementos de la matriz. Esta propiedad se actualiza automáticamente cuando se añaden nuevos elementos a la matriz. Cuando se asigna un valor a un elemento de matriz (por ejemplo, my_array[index] = value), si index es un número e index+1 es mayor que la propiedad length, esta propiedad length se actualizará a index+1.

Nota: si asigna un valor a la propiedad length inferior a la longitud existente, la matriz se truncará.


Implementación
    public function get length():uint
    public function set length(value:uint):void

Ejemplo

El siguiente código crea un objeto Array names con el elemento de cadena Bill. A continuación, utiliza el método push() para añadir otro elemento de cadena Kyle. La longitud de la matriz, tal como se determina con la propiedad length, era un elemento antes de utilizar push() y se convierte en dos elementos tras llamar a push(). Se añade otra cadena, Jeff, para que la longitud de names sea de tres elementos. A continuación, se llama dos veces al método shift() para eliminar Bill y Kyle, por lo que la matriz final tiene una longitud length de uno.

var names:Array = new Array("Bill");
names.push("Kyle");
trace(names.length); // 2

names.push("Jeff");
trace(names.length); // 3

names.shift();
names.shift();
trace(names.length); // 1
Información sobre constructores
Array()constructor
public function Array(numElements:int = 0)

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Le permite crear una matriz con el número especificado de elementos. Si no especifica ningún parámetro, se creará una matriz con 0 elementos. Si especifica un número de elementos, se creará una matriz con el número de elementos indicado por numElements.

Nota: esta clase muestra dos entradas de método constructor porque el constructor acepta tipos de argumentos variables. El constructor se comporta de forma diferente dependiendo del tipo y el número de argumentos pasados, como se detalla en cada entrada. ActionScript 3.0 no admite la sobrecarga de métodos o constructores.

Parámetros
numElements:int (default = 0) — Un entero que especifica el número de elementos de la matriz.

Emite
RangeError — El argumento es un número que no es un entero mayor o igual que 0.

Véase también


Ejemplo

El ejemplo siguiente crea un objeto de matriz myArr sin argumentos y con una longitud inicial de 0:
package {
    import flash.display.Sprite;

    public class Array_Array extends Sprite {

        public function Array_Array() {
            var myArr:Array = new Array();
            trace(myArr.length); // 0
        }
    }
}

En el ejemplo siguiente, se crea un objeto Array con 5 elementos iniciales (de longitud 5), se rellena el primer elemento con la cadena "one" y se añade el elemento de cadena "six" al final de la matriz mediante el método push():
package {
    import flash.display.Sprite;

    public class Array_Array_2 extends Sprite {

        public function Array_Array_2() {
            var myArr:Array = new Array(5);
            trace(myArr.length); // 5
            myArr[0] = "one";
            myArr.push("six");
            trace(myArr);         // one,,,,,six
            trace(myArr.length); // 6
        }
    }
}
Array()constructor 
public function Array(... values)

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Le permite crear una matriz con los elementos especificados. Puede especificar valores de cualquier tipo. El primer elemento de una matriz siempre tiene el índice (o la posición) 0.

Nota: esta clase muestra dos entradas de constructor porque el constructor acepta tipos de argumentos variables. El constructor se comporta de forma diferente dependiendo del tipo y el número de argumentos pasados, como se detalla en cada entrada. ActionScript 3.0 no admite la sobrecarga de métodos o constructores.

Parámetros
... values — Una lista separada por comas de uno o más valores arbitrarios.

Nota: si sólo se pasa un parámetro numérico al constructor Array, se da por hecho que especifica la propiedad length de la matriz.


Emite
RangeError — El argumento es un número que no es un entero mayor o igual que 0.

Véase también


Ejemplo

En el ejemplo siguiente, se crea un nuevo objeto Array de longitud inicial 3, se rellena la matriz con los elementos de cadena one, two y three y, seguidamente, se convierten los elementos en una cadena.
package {
    import flash.display.Sprite;

    public class Array_Array_3 extends Sprite {

        public function Array_Array_3() {
            var myArr:Array = new Array("one", "two", "three");
            trace(myArr.length); // 3
            trace(myArr);          // one,two,three
        }
    }
}
Información sobre métodos
concat()método
AS3 function concat(... args):Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Concatena los elementos especificados en los parámetros con los elementos de una matriz y crea una matriz nueva. Si los parámetros especifican una matriz, se concatenarán los elementos de dicha matriz.

Parámetros

... args — Un valor de cualquier tipo de datos (como números, elementos o cadenas) que se va a concatenar en una matriz nueva. Si no se pasa ningún valor, la nueva matriz será un duplicado de la matriz original.

Valor devuelto
Array — Una matriz que contiene los elementos de esta matriz seguidos de los elementos de los parámetros.

Ejemplo

El código siguiente crea cuatro objetos Array:
  • La matriz numbers, que contiene los números 1, 2 y 3.
  • La matriz letters, que contiene las letras a, b y c.
  • La matriz numbersAndLetters, que llama al método concat() para generar la matriz [1,2,3,a,b,c].
  • La matriz lettersAndNumbers, que llama al método concat() para generar la matriz [a,b,c,1,2,3].

var numbers:Array = new Array(1, 2, 3);
var letters:Array = new Array("a", "b", "c");
var numbersAndLetters:Array = numbers.concat(letters);
var lettersAndNumbers:Array = letters.concat(numbers);

trace(numbers);       // 1,2,3
trace(letters);       // a,b,c
trace(numbersAndLetters); // 1,2,3,a,b,c
trace(lettersAndNumbers); // a,b,c,1,2,3
every()método 
AS3 function every(callback:Function, thisObject:* = null):Boolean

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Ejecuta una función de prueba en cada elemento de la matriz hasta que se llega a un elemento que devuelve false para la función especificada. Este método se utiliza para determinar si todos los elementos de una matriz cumplen un criterio como, por ejemplo, que tengan valores inferiores a un número determinado.

En el caso de este método, el segundo parámetro, thisObject, debe ser null si el primer parámetro, callback, es un cierre del método. Supongamos que crea una función en un clip de película llamado me:

     function myFunction(obj:Object):void { //su código aquí }
     

Supongamos que posteriormente utiliza el método every() en una matriz llamada myArray:

     myArray.every(myFunction, me);
     

Dado que myFunction es miembro de la clase Timeline, que no puede ser anulada por me, Flash Player emitirá una excepción. Puede evitar este error de tiempo de ejecución asignando la función a una variable de la siguiente forma:

     var myFunction:Function = function(obj:Object):void { //su código aquí}; myArray.every(myFunction, me);
     

Parámetros

callback:Function — La función que se va a ejecutar en cada elemento de la matriz. Esta función puede contener una comparación simple (por ejemplo, item < 20) o una operación más compleja y se invoca con tres argumentos; el valor de un elemento, el índice de un elemento y el objeto Array:
function callback(item:*, index:int, array:Array):Boolean;
 
thisObject:* (default = null) — Un objeto que se va a utilizar como this para la función.

Valor devuelto
Boolean — Se devuelve el valor booleano true si todos los elementos de la matriz devuelven true para la función especificada; en caso contrario, false.

Véase también


Ejemplo

El siguiente ejemplo prueba dos matrices para determinar si cada uno de sus elementos es un número. También presenta los resultados de la prueba, mostrando que isNumeric es true para la primera matriz y es false para la segunda:
package {
    import flash.display.Sprite;
    public class Array_every extends Sprite {
        public function Array_every() {
            var arr1:Array = new Array(1, 2, 4);
            var res1:Boolean = arr1.every(isNumeric);
            trace("isNumeric:", res1); // true

            var arr2:Array = new Array(1, 2, "ham");
            var res2:Boolean = arr2.every(isNumeric);
            trace("isNumeric:", res2); // false
        }
        private function isNumeric(element:*, index:int, arr:Array):Boolean {
            return (element is Number);
        }
    }
}
filter()método 
AS3 function filter(callback:Function, thisObject:* = null):Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Ejecuta una función de prueba en cada elemento de la matriz y construye una nueva matriz para todos los elementos que devuelven true para la función especificada. Si un elemento devuelve false, no se incluye en la nueva matriz.

En el caso de este método, el segundo parámetro, thisObject, debe ser null si el primer parámetro, callback, es un cierre del método. Supongamos que crea una función en un clip de película llamado me:

     function myFunction(obj:Object):void { //su código aquí }
     

Supongamos que posteriormente utiliza el método filter() en una matriz llamada myArray:

     myArray.filter(myFunction, me);
     

Dado que myFunction es miembro de la clase Timeline, que no puede ser anulada por me, Flash Player emitirá una excepción. Puede evitar este error de tiempo de ejecución asignando la función a una variable de la siguiente forma:

     var myFunction:Function = function(obj:Object):void { //su código aquí }; myArray.filter(myFunction, me);
     

Parámetros

callback:Function — La función que se va a ejecutar en cada elemento de la matriz. Esta función puede contener una comparación simple (por ejemplo, item < 20) o una operación más compleja y se invoca con tres argumentos; el valor de un elemento, el índice de un elemento y el objeto Array:
    function callback(item:*, index:int, array:Array):Boolean;
 
thisObject:* (default = null) — Un objeto que se va a utilizar como this para la función.

Valor devuelto
Array — Una nueva matriz que contiene todos los elementos de la matriz original que han devuelto true.

Véase también


Ejemplo

El siguiente ejemplo crea una matriz con todos los empleados que son directores:
package {
    import flash.display.Sprite;
    public class Array_filter extends Sprite {
        public function Array_filter() {
            var employees:Array = new Array();
            employees.push({name:"Employee 1", manager:false});
            employees.push({name:"Employee 2", manager:true});
            employees.push({name:"Employee 3", manager:false});
            trace("Employees:");
            employees.forEach(traceEmployee);

            var managers:Array = employees.filter(isManager);
            trace("Managers:");
            managers.forEach(traceEmployee);
        }
        private function isManager(element:*, index:int, arr:Array):Boolean {
            return (element.manager == true);
        }
        private function traceEmployee(element:*, index:int, arr:Array):void {
            trace("\t" + element.name + ((element.manager) ? " (manager)" : ""));
        }
    }
}
forEach()método 
AS3 function forEach(callback:Function, thisObject:* = null):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Ejecuta una función en cada elemento de la matriz.

En el caso de este método, el segundo parámetro, thisObject, debe ser null si el primer parámetro, callback, es un cierre del método. Supongamos que crea una función en un clip de película llamado me:

     function myFunction(obj:Object):void { //su código aquí }
     

Supongamos que posteriormente utiliza el método forEach() en una matriz llamada myArray:

     myArray.forEach(myFunction, me);
     

Dado que myFunction es miembro de la clase Timeline, que no puede ser anulada por me, Flash Player emitirá una excepción. Puede evitar este error de tiempo de ejecución asignando la función a una variable de la siguiente forma:

     var myFunction:Function = function(obj:Object):void { //su código aquí }; myArray.forEach(myFunction, me);
     

Parámetros

callback:Function — La función que se va a ejecutar en cada elemento de la matriz. Esta función puede contener un comando simple (por ejemplo, una sentencia trace()) o una operación más compleja y se invoca con tres argumentos; el valor de un elemento, el índice de un elemento y el objeto Array:
    function callback(item:*, index:int, array:Array):void;
 
thisObject:* (default = null) — Un objeto que se va a utilizar como this para la función.


Ejemplo

El siguiente ejemplo ejecuta la sentencia trace() en la función traceEmployee() de cada elemento de la matriz:
package {
    import flash.display.Sprite;
    public class Array_forEach extends Sprite {
        public function Array_forEach() {
            var employees:Array = new Array();
            employees.push({name:"Employee 1", manager:false});
            employees.push({name:"Employee 2", manager:true});
            employees.push({name:"Employee 3", manager:false});
            trace(employees);
            employees.forEach(traceEmployee);
        }
        private function traceEmployee(element:*, index:int, arr:Array):void {
            trace(element.name + " (" + element.manager + ")");
        }
    }
}

El siguiente ejemplo también ejecuta la sentencia trace() en una función traceEmployee() ligeramente modificada en cada elemento de la matriz:
package {
    import flash.display.Sprite;
    public class Array_forEach_2 extends Sprite {
        public function Array_forEach_2() {
            var employeeXML:XML = <employees>
                    <employee name="Steven" manager="false" />
                    <employee name="Bruce" manager="true" />
                    <employee name="Rob" manager="false" />
                </employees>;
            var employeesList:XMLList = employeeXML.employee;
            var employeesArray:Array = new Array();
            for each (var tempXML:XML in employeesList) {
                employeesArray.push(tempXML);
            }
            employeesArray.sortOn("@name");
            employeesArray.forEach(traceEmployee);
        }
        private function traceEmployee(element:*, index:Number, arr:Array):void {
            trace(element.@name + ((element.@manager == "true") ? " (manager)" : ""));
        }
    }
}
indexOf()método 
AS3 function indexOf(searchElement:*, fromIndex:int = 0):int

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Busca un elemento en una matriz utilizando el operador de igualdad estricta (===) y devuelve la posición de índice del elemento.

Parámetros

searchElement:* — El elemento que se va a buscar en la matriz.
 
fromIndex:int (default = 0) — La ubicación de la matriz en la que debe comenzar la búsqueda del elemento.

Valor devuelto
int — La posición de índice basada en cero del elemento en la matriz. Si no se encuentra el argumento searchElement, el valor devuelto es -1.

Véase también


Ejemplo

El siguiente ejemplo muestra la posición de la matriz especificada:
package {
    import flash.display.Sprite;
    public class Array_indexOf extends Sprite {
        public function Array_indexOf() {
            var arr:Array = new Array(123,45,6789);
            arr.push("123-45-6789");
            arr.push("987-65-4321");

            var index:int = arr.indexOf("123");
            trace(index); // -1

            var index2:int = arr.indexOf(123);
            trace(index2); // 0
        }
    }
}
join()método 
AS3 function join(sep:*):String

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Convierte los elementos de una matriz en cadenas, inserta el separador especificado entre los elementos, los concatena y devuelve la cadena resultante. Una matriz anidada siempre va separada por una coma (,), no por el separador pasado al método join().

Parámetros

sep:* — Un carácter o una cadena que separa los elementos de la matriz en la cadena devuelta. Si omite este parámetro, se utilizará una coma como separador predeterminado.

Valor devuelto
String — Una cadena formada por los elementos de una matriz convertidos en cadenas y separados por el parámetro especificado.

Véase también


Ejemplo

El siguiente código crea un objeto Array myArr con los elementos one, twoy three y, a continuación, una cadena que contiene one and two and three con el método join().

var myArr:Array = new Array("one", "two", "three");
var myStr:String = myArr.join(" and ");
trace(myArr); // one,two,three
trace(myStr); // one and two and three

El siguiente código crea un objeto Array specialChars con los elementos (, ), - y un espacio en blanco y, a continuación, crea una cadena que contiene (888) 867-5309. Después, utilizando un bucle for, elimina cada tipo de carácter especial de specialChars para generar una cadena (myStr) que contiene exclusivamente los dígitos del número de teléfono: 888675309. Tenga en cuenta que otros caracteres, como +, se podrían añadir a specialChars y esta rutina funcionaría con formatos de números de teléfono internacionales.

var phoneString:String = "(888) 867-5309";

var specialChars:Array = new Array("(", ")", "-", " ");
var myStr:String = phoneString;

var ln:uint = specialChars.length;
for(var i:uint; i < ln; i++) {
    myStr = myStr.split(specialChars[i]).join("");
}

var phoneNumber:Number = new Number(myStr);

trace(phoneString); // (888) 867-5309
trace(phoneNumber); // 8888675309
lastIndexOf()método 
AS3 function lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Busca un elemento en una matriz hacia atrás desde el último elemento y devuelve la posición de índice del elemento coincidente utilizando el operador de igualdad estricta (===).

Parámetros

searchElement:* — El elemento que se va a buscar en la matriz.
 
fromIndex:int (default = 0x7fffffff) — La ubicación de la matriz en la que debe comenzar la búsqueda del elemento. El valor predeterminado es el valor máximo permitido para un índice. Si no especifica fromIndex, la búsqueda comenzará en el último elemento de la matriz.

Valor devuelto
int — La posición de índice basada en cero del elemento en la matriz. Si no se encuentra el argumento searchElement, el valor devuelto es -1.

Véase también


Ejemplo

El siguiente ejemplo muestra la posición de la matriz especificada:
package {
    import flash.display.Sprite;
    public class Array_lastIndexOf extends Sprite {
        public function Array_lastIndexOf() {
            var arr:Array = new Array(123,45,6789,123,984,323,123,32);

            var index:int = arr.indexOf(123);
            trace(index); // 0

            var index2:int = arr.lastIndexOf(123);
            trace(index2); // 6
        }
    }
}
map()método 
AS3 function map(callback:Function, thisObject:* = null):Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Ejecuta una función en cada elemento de una matriz y construye una nueva matriz de elementos correspondientes a los resultados de la función en cada elemento de la matriz original.

En el caso de este método, el segundo parámetro, thisObject, debe ser null si el primer parámetro, callback, es un cierre del método. Supongamos que crea una función en un clip de película llamado me:

     function myFunction(obj:Object):void { //su código aquí }
     

Supongamos que posteriormente utiliza el método map() en una matriz llamada myArray:

     myArray.map(myFunction, me);
     

Dado que myFunction es miembro de la clase Timeline, que no puede ser anulada por me, Flash Player emitirá una excepción. Puede evitar este error de tiempo de ejecución asignando la función a una variable de la siguiente forma:

     var myFunction:Function = function(obj:Object):void { //su código aquí }; myArray.map(myFunction, me);
     

Parámetros

callback:Function — La función que se va a ejecutar en cada elemento de la matriz. Esta función puede contener un comando simple (por ejemplo, el cambio de mayúsculas a minúsculas y viceversa de una matriz de cadenas) o una operación más compleja y se invoca con tres argumentos; el valor de un elemento, el índice de un elemento y el objeto Array:
    function callback(item:*, index:int, array:Array):void;
 
thisObject:* (default = null) — Un objeto que se va a utilizar como this para la función.

Valor devuelto
Array — Una nueva matriz que contiene los resultados de la función en cada elemento de la matriz original.

Véase también


Ejemplo

El siguiente ejemplo cambia todos los elementos de la matriz para que se escriban con mayúscula:
package {
    import flash.display.Sprite;
    public class Array_map extends Sprite {
        public function Array_map() {
            var arr:Array = new Array("one", "two", "Three");
            trace(arr); // one,two,Three

            var upperArr:Array = arr.map(toUpper);
            trace(upperArr); // ONE,TWO,THREE
        }
        private function toUpper(element:*, index:int, arr:Array):String {
            return String(element).toUpperCase();
        }
    }
}
pop()método 
AS3 function pop():*

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Elimina el último elemento de una matriz y devuelve el valor de dicho elemento.

Valor devuelto
* — El valor del último elemento (de cualquier tipo de datos) de la matriz especificada.

Véase también


Ejemplo

El siguiente código crea un objeto Array letters con los elementos a, b y c. El último elemento (c) se elimina de la matriz con el método pop() y se asigna al objeto String letter.

var letters:Array = new Array("a", "b", "c");
trace(letters); // a,b,c
var letter:String = letters.pop();
trace(letters); // a,b
trace(letter);     // c
push()método 
AS3 function push(... args):uint

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Añade uno o varios elementos al final de una matriz y devuelve la nueva longitud de la matriz.

Parámetros

... args — Uno o más valores que se añadirán a la matriz.

Valor devuelto
uint — Un entero que representa la longitud de la nueva matriz.

Véase también


Ejemplo

El siguiente código crea un objeto Array letters y llena la matriz con los elementos a, b y c utilizando el método push().

var letters:Array = new Array();

letters.push("a");
letters.push("b");
letters.push("c");

trace(letters.toString()); // a,b,c

El siguiente código crea un objeto Array letters, que se llena inicialmente con el elemento a. Seguidamente, se utiliza el método push() una vez para añadir los elementos b y c al final de la matriz (tras el método push(), la matriz tiene tres elementos).

var letters:Array = new Array("a");
var count:uint = letters.push("b", "c");

trace(letters); // a,b,c
trace(count);   // 3
reverse()método 
AS3 function reverse():Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Invierte la colocación de la matriz.

Valor devuelto
Array — La nueva matriz.

Ejemplo

El siguiente código crea un objeto Array letters con los elementos a, b y c. El orden de los elementos de la matriz se invierte con el método reverse() para generar la matriz [c,b,a].

var letters:Array = new Array("a", "b", "c");
trace(letters); // a,b,c
letters.reverse();
trace(letters); // c,b,a
shift()método 
AS3 function shift():*

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Elimina el primer elemento de una matriz y devuelve dicho elemento. Los restantes elementos de la matriz se desplazan de su posición original, i, a i-1.

Valor devuelto
* — El primer elemento (de cualquier tipo de datos) de una matriz.

Véase también


Ejemplo

El siguiente código crea el objeto Array letters con los elementos a, b y c. El método shift() se utiliza para eliminar el primer elemento (a) de letters y se asigna a la cadena firstLetter.

var letters:Array = new Array("a", "b", "c");
var firstLetter:String = letters.shift();
trace(letters);     // b,c
trace(firstLetter); // a
slice()método 
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Devuelve una matriz nueva que consta de un rango de elementos de la matriz original sin modificar la matriz original. La matriz devuelta incluye el elemento startIndex y todos los elementos hasta endIndex, sin incluir éste.

Si no se pasa ningún parámetro, se creará un duplicado de la matriz original.

Parámetros

startIndex:int (default = 0) — Un número que especifica el índice del punto inicial para la división. Si startIndex es un número negativo, el punto inicial comenzará al final de la matriz, donde -1 es el último elemento.
 
endIndex:int (default = 16777215) — Un número que especifica el índice del punto final para la división. Si omite este parámetro, la división incluirá todos los elementos desde el punto inicial hasta el final de la matriz. Si endIndex es un número negativo, el punto final se especificará desde el final de la matriz, donde -1 es el último elemento.

Valor devuelto
Array — Una matriz que consta de un rango de elementos de la matriz original.

Ejemplo

El siguiente código crea un objeto Array letters con los elementos [a,b,c,d,e,f]. Se crea la matriz someLetters llamando al método slice() en los elementos del uno (b) al tres (d), lo que genera una matriz con los elementos b y c.

var letters:Array = new Array("a", "b", "c", "d", "e", "f");
var someLetters:Array = letters.slice(1,3);

trace(letters);     // a,b,c,d,e,f
trace(someLetters); // b,c

El siguiente código crea un objeto Array letters con los elementos [a,b,c,d,e,f]. A continuación, se crea la matriz someLetters llamando al método slice() en el elemento dos (c), lo que genera una matriz con los elementos [c,d,e,f].

var letters:Array = new Array("a", "b", "c", "d", "e", "f");
var someLetters:Array = letters.slice(2);

trace(letters);     // a,b,c,d,e,f
trace(someLetters); // c,d,e,f

El siguiente código crea un objeto Array letters con los elementos [a,b,c,d,e,f]. A continuación, se crea la matriz someLetters llamando al método slice() del segundo elemento hasta el último (e), lo que genera una matriz con los elementos e y f.

var letters:Array = new Array("a", "b", "c", "d", "e", "f");
var someLetters:Array = letters.slice(-2);

trace(letters);     // a,b,c,d,e,f
trace(someLetters); // e,f
some()método 
AS3 function some(callback:Function, thisObject:* = null):Boolean

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Ejecuta una función de prueba en cada elemento de la matriz hasta que se llega a un elemento que devuelve true. Utilice este método para determinar si todos los elementos de una matriz cumplen un criterio como, por ejemplo, que tengan valores inferiores a un número determinado.

En el caso de este método, el segundo parámetro, thisObject, debe ser null si el primer parámetro, callback, es un cierre del método. Supongamos que crea una función en un clip de película llamado me:

     function myFunction(obj:Object):void { //su código aquí }
     

Supongamos que posteriormente utiliza el método some() en una matriz llamada myArray:

     myArray.some(myFunction, me);
     

Dado que myFunction es miembro de la clase Timeline, que no puede ser anulada por me, Flash Player emitirá una excepción. Puede evitar este error de tiempo de ejecución asignando la función a una variable de la siguiente forma:

     var myFunction:Function = function(obj:Object):void { //su código aquí }; myArray.some(myFunction, me);
     

Parámetros

callback:Function — La función que se va a ejecutar en cada elemento de la matriz. Esta función puede contener una comparación simple (por ejemplo, item < 20) o una operación más compleja y se invoca con tres argumentos; el valor de un elemento, el índice de un elemento y el objeto Array:
    function callback(item:*, index:int, array:Array):Boolean;
 
thisObject:* (default = null) — Un objeto que se va a utilizar como this para la función.

Valor devuelto
Boolean — Se devuelve el valor booleano true si algún elemento de la matriz devuelve true para la función especificada; en caso contrario se devuelve false.

Véase también


Ejemplo

El siguiente ejemplo muestra qué valores son undefined:
package {
    import flash.display.Sprite;
    public class Array_some extends Sprite {
        public function Array_some() {
            var arr:Array = new Array();
            arr[0] = "one";
            arr[1] = "two";
            arr[3] = "four";
            var isUndef:Boolean = arr.some(isUndefined);
            if (isUndef) {
                trace("array contains undefined values: " + arr);
            } else {
                trace("array contains no undefined values.");
            }
        }
        private function isUndefined(element:*, index:int, arr:Array):Boolean {
            return (element == undefined);
        }
    }
}
sort()método 
AS3 function sort(... args):Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Ordena los elementos de una matriz. Este método ordena por valores Unicode. (ASCII es un subconjunto de Unicode.)

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

Para ordenar una matriz utilizando valores que se desvían de los predeterminados, puede utilizar una de las opciones de ordenación que se describen en la parte sortOptions de la descripción del parámetro ...args, o bien puede crear una función personalizada para realizar la ordenación. Si crea una función personalizada, deberá llamar al método sort() y utilizar el nombre de la función personalizada como primer argumento (compareFunction)

Parámetros

... args — Los argumentos que especifican una función de comparación y uno o más valores que determinan el comportamiento de la ordenación.

Este método utiliza la sintaxis y el orden de argumentos Array.sort(compareFunction, sortOptions) con los argumentos definidos de la siguiente forma:

  • compareFunction - Una función de comparación utilizada para determinar el orden de los elementos de una matriz. Este argumento es opcional. Una función de comparación debe tomar dos argumentos para compararlos. Dados los elementos A y B, el resultado de compareFunction puede tener uno de los tres valores siguientes:
    • -1, si A debe aparecer antes que B en la secuencia ordenada
    • 0, si A es igual a B
    • 1, si A debe aparecer después que B en la secuencia ordenada
  • sortOptions - Uno o más números o constantes definidas, separados por el operador | (OR en modo bit), que cambian el comportamiento de la ordenación respecto al valor predeterminado. Este argumento es opcional. Los valores siguientes son aceptables para sortOptions:
    • 1 o Array.CASEINSENSITIVE
    • 2 o Array.DESCENDING
    • 4 o Array.UNIQUESORT
    • 8 o Array.RETURNINDEXEDARRAY
    • 16 o Array.NUMERIC
    Para más información, consulte el método Array.sortOn().

Valor devuelto
Array — El valor devuelto depende de si pasa algún argumento, como se describe en la siguiente lista:
  • Si especifica el valor 4 o Array.UNIQUESORT para el argumento sortOptions del parámetro ...args y dos o más elementos ordenados tienen campos de ordenación idénticos, Flash devolverá el valor 0 y no modificará la matriz.
  • Si especifica el valor 8 o Array.RETURNINDEXEDARRAY para el argumento sortOptions del parámetro ...args, Flash devolverá una matriz numérica ordenada de los índices que reflejará los resultados de la ordenación y no modificará la matriz.
  • En cualquier otro caso, Flash no devuelve nada y modifica la matriz de manera que refleje el orden de clasificación.

Véase también


Ejemplo

El siguiente código crea el objeto Array vegetables con los elementos [spinach, green pepper, cilantro, onion, avocado]. A continuación, la matriz se ordena utilizando el método sort(), al que se llama sin ningún parámetro. El resultado es el grupo vegetables ordenado alfabéticamente ([avocado, cilantro, green pepper, onion, spinach]).

var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "cilantro",
                 "onion",
                 "avocado");

trace(vegetables); // spinach,green pepper,cilantro,onion,avocado
vegetables.sort();
trace(vegetables); // avocado,cilantro,green pepper,onion,spinach

El siguiente código crea el objeto Array object vegetables con los elementos [spinach, green pepper, Cilantro, Onion, and Avocado]. La matriz se ordena con el método sort(), al que se llama sin ningún parámetro la primera vez; el resultado es [Avocado,Cilantro,Onion,green pepper,spinach]. A continuación, se vuelve a llamar a sort() en vegetables con la constante CASEINSENSITIVE como parámetro. El resultado es el grupo vegetables ordenado alfabéticamente ([Avocado, Cilantro, green pepper, Onion, spinach]).

var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "Cilantro",
                 "Onion",
                 "Avocado");

vegetables.sort();
trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach
vegetables.sort(Array.CASEINSENSITIVE);
trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach

El siguiente código crea el objeto Array vacío vegetables, que luego se llena mediante cinco llamadas al método push(). Cada vez que se llama a push(), se crea un nuevo objeto Vegetable mediante una llamada al constructor Vegetable(), que acepta un objeto String (name) y un objeto Number (price). Al llamar a push() cinco veces con los valores mostrados se obtiene la siguiente matriz: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]. El método sort() se utiliza en ese momento para ordenar la matriz y generar la siguiente matriz [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44].
var vegetables:Array = new Array();
vegetables.push(new Vegetable("lettuce", 1.49));
vegetables.push(new Vegetable("spinach", 1.89));
vegetables.push(new Vegetable("asparagus", 3.99));
vegetables.push(new Vegetable("celery", 1.29));
vegetables.push(new Vegetable("squash", 1.44));

trace(vegetables);
// lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44

vegetables.sort();

trace(vegetables);
// asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44

//The following code defines the Vegetable class
class Vegetable {
    private var name:String;
    private var price:Number;

    public function Vegetable(name:String, price:Number) {
        this.name = name;
        this.price = price;
    }

    public function toString():String {
        return " " + name + ":" + price;
    }
}

El ejemplo siguiente es exactamente igual que el anterior, con la salvedad de que el método sort() se utiliza con una función de ordenación personalizada (sortOnPrice) que realiza la ordenación según el precio, y no alfabéticamente. Observe que la nueva función getPrice() extrae el precio.

var vegetables:Array = new Array();
vegetables.push(new Vegetable("lettuce", 1.49));
vegetables.push(new Vegetable("spinach", 1.89));
vegetables.push(new Vegetable("asparagus", 3.99));
vegetables.push(new Vegetable("celery", 1.29));
vegetables.push(new Vegetable("squash", 1.44));

trace(vegetables);
// lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44

vegetables.sort(sortOnPrice);

trace(vegetables);
// celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99

function sortOnPrice(a:Vegetable, b:Vegetable):Number {
    var aPrice:Number = a.getPrice();
    var bPrice:Number = b.getPrice();

    if(aPrice > bPrice) {
        return 1;
    } else if(aPrice < bPrice) {
        return -1;
    } else  {
        //aPrice == bPrice
        return 0;
    }
}

// The following code defines the Vegetable class and should be in a separate package.
class Vegetable {
    private var name:String;
    private var price:Number;

    public function Vegetable(name:String, price:Number) {
        this.name = name;
        this.price = price;
    }

    public function getPrice():Number {
        return price;
    }

    public function toString():String {
        return " " + name + ":" + price;
    }
}

El siguiente código crea el objeto Array numbers con los elementos [3,5,100,34,10]. Una llamada al método sort() sin ningún parámetro, ordenaría el grupo alfabéticamente y generaría un resultado no deseado [10,100,3,34,5]. Para ordenar correctamente los valores numéricos, se debe transferir la constante NUMERIC al método sort(), que ordena los objetos number del modo siguiente: [3,5,10,34,100].

Nota: el comportamiento predeterminado de la función sort() es gestionar cada entidad como una cadena. El argumento Array.NUMERIC en realidad no convierte otros tipos de datos a Number: simplemente permite que el algoritmo de ordenación pueda reconocer los números.


var numbers:Array = new Array(3,5,100,34,10);

trace(numbers); // 3,5,100,34,10
numbers.sort();
trace(numbers); // 10,100,3,34,5
numbers.sort(Array.NUMERIC);
trace(numbers); // 3,5,10,34,100
sortOn()método 
AS3 function sortOn(fieldName:Object, options:Object = null):Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Ordena los elementos de una matriz por uno o varios campos de la matriz. La matriz debe tener las siguientes características:

Si pasa varios parámetros fieldName, el primer campo representará al campo de ordenación principal, el segundo representará al siguiente campo de ordenación, etc. Flash ordena por valores Unicode. (ASCII es un subconjunto de Unicode.) Si uno de los elementos que se están comparando no contiene el campo especificado en el parámetro fieldName, se dará por hecho que el campo está definido como undefined y los elementos se colocarán consecutivamente en la matriz ordenada sin seguir ningún orden determinado.

De manera predeterminada, Array.sortOn() funciona de la siguiente forma:

Flash Player 7 añadía el parámetro options, que puede utilizar para sobrescribir el comportamiento de ordenación anterior. Para ordenar una matriz sencilla (por ejemplo, una matriz con un solo campo), o si desea especificar un orden de clasificación que el parámetro options no admite, utilice Array.sort().

Para pasar varios indicadores, sepárelos con el operador OR en modo de bit (|):

  my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
  

Flash Player 8 ofrece además la posibilidad de especificar una opción de ordenación diferente para cada campo cuando se realiza una ordenación por más de un campo. En Flash Player 8 y versiones posteriores, el parámetro options acepta una matriz de opciones de ordenación de manera que cada opción de ordenación corresponde a un campo de ordenación en el parámetro fieldName. En el ejemplo siguiente, se ordena el campo de ordenación principal a en orden descendente, el campo de ordenación secundario b empleando una ordenación numérica y el campo de ordenación terciario c utilizando su distinción entre mayúsculas y minúsculas:

  Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
  

Nota: las matrices fieldName y options deben tener el mismo número de elementos; de lo contrario la matriz options se ignora. Asimismo, las opciones Array.UNIQUESORT y Array.RETURNINDEXEDARRAY sólo pueden utilizarse como primer elemento de la matriz y, en caso contrario, se ignoran.

Parámetros

fieldName:Object — Una cadena que identifica un campo que se va a utilizar como valor de ordenación, o una matriz en la cual el primer elemento representa el campo de ordenación principal, el segundo representa el campo de ordenación secundario, etc.
 
options:Object (default = null) — Uno o más números o nombres de constantes definidas, separados por el operador bitwise OR (|) (OR en modo bit) que cambian el comportamiento de la ordenación. Estos son los valores válidos del parámetro options:

Las sugerencias están activadas si se utiliza la forma de cadena del indicador (por ejemplo, DESCENDING) en lugar de su forma numérica (2).

Valor devuelto
Array — El valor devuelto depende de si se pasa algún parámetro:
  • Si especifica el valor 4 o Array.UNIQUESORT para el parámetro options y dos o más elementos ordenados tienen campos de ordenación idénticos, se devolverá el valor 0 y no se modificará la matriz.
  • Si especifica el valor 8 o Array.RETURNINDEXEDARRAY para el parámetro options, se devolverá una matriz que reflejará los resultados de la ordenación y no se modificará la matriz.
  • En cualquier otro caso, no se devuelve nada y se modifica la matriz de manera que refleje el orden de clasificación.

Véase también


Ejemplo

El siguiente código crea el objeto Array vacío vegetables, que luego se llena mediante cinco llamadas al método push(). Cada vez que se llama a push(), se crea un nuevo objeto Vegetable mediante una llamada al constructor Vegetable(), que acepta un objeto String (name) y un objeto Number (price). Al llamar a push() cinco veces con los valores mostrados se obtiene la siguiente matriz: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]. Seguidamente, se utiliza el método sortOn() con el parámetro name para generar la siguiente matriz: [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]. Se vuelve a llamar al método sortOn() con el parámetro price y con las constantes NUMERIC y DESCENDING para generar una matriz ordenada numéricamente en orden descendente: [asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29].

var vegetables:Array = new Array();
vegetables.push(new Vegetable("lettuce", 1.49));
vegetables.push(new Vegetable("spinach", 1.89));
vegetables.push(new Vegetable("asparagus", 3.99));
vegetables.push(new Vegetable("celery", 1.29));
vegetables.push(new Vegetable("squash", 1.44));

trace(vegetables);
// lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44

vegetables.sortOn("name");
trace(vegetables);
// asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44

vegetables.sortOn("price", Array.NUMERIC | Array.DESCENDING);
trace(vegetables);
// asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29

class Vegetable {
    public var name:String;
    public var price:Number;

    public function Vegetable(name:String, price:Number) {
        this.name = name;
        this.price = price;
    }

    public function toString():String {
        return " " + name + ":" + price;
    }
}

El siguiente código crea el objeto Array vacío records, que luego se llena mediante tres llamadas al método push(). Cada vez que se llama a push(), las cadenas name y city y zip se añaden a records. Se usan tres bucles for para imprimir los elementos de la matriz. El primer bucle for imprime los elementos en el orden en que se han añadido. El segundo bucle for se ejecuta una vez ordenado records por nombre y, después, por ciudad utilizando el método sortOn(). El tercer bucle for genera un resultado distinto porque records se vuelve a ordenar primero por ciudad y luego por nombre.


var records:Array = new Array();
records.push({name:"john", city:"omaha", zip:68144});
records.push({name:"john", city:"kansas city", zip:72345});
records.push({name:"bob", city:"omaha", zip:94010});

for(var i:uint = 0; i < records.length; i++) {
    trace(records[i].name + ", " + records[i].city);
}
// Results:
// john, omaha
// john, kansas city
// bob, omaha

trace("records.sortOn('name', 'city');");
records.sortOn(["name", "city"]);
for(var i:uint = 0; i < records.length; i++) {
    trace(records[i].name + ", " + records[i].city);
}
// Results:
// bob, omaha
// john, kansas city
// john, omaha

trace("records.sortOn('city', 'name');");
records.sortOn(["city", "name"]);
for(var i:uint = 0; i < records.length; i++) {
    trace(records[i].name + ", " + records[i].city);
}
// Results:
// john, kansas city
// bob, omaha
// john, omaha

El siguiente código crea el objeto Array vacío users, que luego se llena mediante cuatro llamadas al método push(). Cada vez que se llama a push(), se crea un objeto User con el constructor User() y se añaden una cadena name y un objeto uint age a los usuarios. La matriz resultante es [Bob:3,barb:35,abcd:3,catchy:4].

Seguidamente, la matriz se ordena del modo siguiente:

  1. Sólo por nombre: se genera la matriz [Bob:3,abcd:3,barb:35,catchy:4]
  2. Por nombre y utilizando la constante CASEINSENSITIVE: se genera la matriz [abcd:3,barb:35,Bob:3,catchy:4]
  3. Por nombre y utilizando las constantes CASEINSENSITIVE y DESCENDING: se genera la matriz [catchy:4,Bob:3,barb:35,abcd:3]
  4. Sólo por edad: se genera la matriz [abcd:3,Bob:3,barb:35,catchy:4]
  5. Por edad y utilizando la constante NUMERIC: se genera la matriz [Bob:3,abcd:3,catchy:4,barb:35]
  6. Por edad y utilizando las constantes DESCENDING y NUMERIC: se genera la matriz [barb:35,catchy:4,Bob:3,abcd:3]

A continuación, se crea una matriz llamada indices y se asignan los resultados de una ordenación por edad que utilice también las constantes NUMERIC y RETURNINDEXEDARRAY, lo que genera la matriz [Bob:3,abcd:3,catchy:4,barb:35], que se imprime con un bucle for.


class User {
    public var name:String;
    public var age:Number;
    public function User(name:String, age:uint) {
        this.name = name;
        this.age = age;
    }

    public function toString():String {
        return this.name + ":" + this.age;
    }
}

var users:Array = new Array();
users.push(new User("Bob", 3));
users.push(new User("barb", 35));
users.push(new User("abcd", 3));
users.push(new User("catchy", 4));

trace(users); // Bob:3,barb:35,abcd:3,catchy:4

users.sortOn("name");
trace(users); // Bob:3,abcd:3,barb:35,catchy:4

users.sortOn("name", Array.CASEINSENSITIVE);
trace(users); // abcd:3,barb:35,Bob:3,catchy:4

users.sortOn("name", Array.CASEINSENSITIVE | Array.DESCENDING);
trace(users); // catchy:4,Bob:3,barb:35,abcd:3

users.sortOn("age");
trace(users); // abcd:3,Bob:3,barb:35,catchy:4

users.sortOn("age", Array.NUMERIC);
trace(users); // Bob:3,abcd:3,catchy:4,barb:35

users.sortOn("age", Array.DESCENDING | Array.NUMERIC);
trace(users); // barb:35,catchy:4,Bob:3,abcd:3

var indices:Array = users.sortOn("age", Array.NUMERIC | Array.RETURNINDEXEDARRAY);
var index:uint;
for(var i:uint = 0; i < indices.length; i++) {
    index = indices[i];
    trace(users[index].name, ": " + users[index].age);
}

// Results:
// Bob : 3
// abcd : 3
// catchy : 4
// barb : 35
splice()método 
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Añade y elimina elementos de una matriz. Este método modifica la matriz sin realizar ninguna copia de ella.

Nota: para anular este método en una subclase de Array, utilice ...args para los parámetros, como se muestra en este ejemplo:

  public override function splice(...args) { // las sentencias van aquí }
  

Parámetros

startIndex:int — Un entero que especifica el índice del elemento de la matriz donde comienza la inserción o eliminación. Puede utilizar un entero negativo para especificar una posición relativa al final de la matriz (por ejemplo, -1 es el último elemento de la matriz).
 
deleteCount:uint — Un entero que especifica el número de elementos que se van a eliminar. Este número incluye el elemento especificado en el parámetro startIndex. Si no especifica ningún valor para el parámetro deleteCount, el método eliminará todos los valores desde el elemento startIndex hasta el último elemento de la matriz. Si el valor es 0, no se eliminará ningún elemento.
 
... values — Una lista opcional de uno o varios valores separados por comas o una matriz que se va a insertar en la matriz en la posición especificada en el parámetro startIndex.

Valor devuelto
Array — Una matriz que contiene los elementos eliminados de la matriz original.

Ejemplo

El siguiente código crea el objeto Array vegetables con los elementos [spinach, green pepper, cilantro, onion, avocado]. A continuación, se llama al método splice() con los parámetros 2 y 2, con lo que se asigna cilantro y onion a la matriz spliced. La matriz vegetables contiene en ese momento [spinach,green pepper,avocado]. Se llama al método splice() por segunda vez con los parámetros 1, 0 y a la matriz spliced para asignar [cilantro,onion] como el segundo elemento de vegetables.

var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "cilantro",
                 "onion",
                 "avocado");

var spliced:Array = vegetables.splice(2, 2);
trace(vegetables); // spinach,green pepper,avocado
trace(spliced);    // cilantro,onion

vegetables.splice(1, 0, spliced);
trace(vegetables); // spinach,cilantro,onion,green pepper,avocado


Observe que cilantro y onion se trazan como si vegetables tuviera 5 elementos, aunque en realidad tenga cuatro (y el segundo elemento sea otra matriz que contiene dos elementos). Para añadir cilantro y onion por separado, se haría lo siguiente:

var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "cilantro",
                 "onion",
                 "avocado");

 var spliced:Array = vegetables.splice(2, 2);
 trace(vegetables); // spinach,green pepper,avocado
 trace(spliced);    // cilantro,onion

 vegetables.splice(1, 0, "cilantro", "onion");
 trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
toLocaleString()método 
public function toLocaleString():String

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Devuelve una cadena que representa los elementos de la matriz especificada. Cada elemento de la matriz, comenzando por el índice 0 y terminando por el índice más alto, se convierte en una cadena concatenada separada por comas. En la implementación ActionScript 3.0, este método devuelve el mismo valor que el método Array.toString().

Valor devuelto
String — Una cadena de elementos de matriz.

Véase también

toString()método 
public function toString():String

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Devuelve una cadena que representa los elementos de la matriz especificada. Cada elemento de la matriz, comenzando por el índice 0 y terminando por el índice más alto, se convierte en una cadena concatenada separada por comas. Para especificar un separador personalizado, utilice el método Array.join().

Valor devuelto
String — Una cadena de elementos de matriz.

Véase también


Ejemplo

El siguiente código crea un objeto Array, convierte sus valores en cadenas y los guarda en la variable vegnums del tipo de datos String.

var vegetables:Array = new Array();
vegetables.push(1);
vegetables.push(2);
vegetables.push(3);
vegetables.push(4);
vegetables.push(5);
var vegnums:String = vegetables.toString();
trace(vegnums+",6");
// 1,2,3,4,5,6
unshift()método 
AS3 function unshift(... args):uint

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Añade uno o varios elementos al comienzo de una matriz y devuelve la nueva longitud de la matriz. Los restantes elementos de la matriz se desplazan de su posición original, i, a i+1.

Parámetros

... args — Uno o más números, elementos o variables que se insertarán al principio de la matriz.

Valor devuelto
uint — Un entero que representa la nueva longitud de la matriz.

Véase también


Ejemplo

El siguiente código crea un objeto Array vacío names. Las cadenas Bill y Jeff se añaden utilizando el método push() y, después, las cadenas Alfred y Kyle se añaden al principio de names mediante dos llamadas al método unshift().

var names:Array = new Array();
names.push("Bill");
names.push("Jeff");

trace(names); // Bill,Jeff

names.unshift("Alfred");
names.unshift("Kyle");

trace(names); // Kyle,Alfred,Bill,Jeff
Información sobre constantes
CASEINSENSITIVEConstante
public static const CASEINSENSITIVE:uint = 1

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica una ordenación con distinción entre mayúsculas y minúsculas para los métodos de ordenación de la clase Array. Puede utilizar esta constante para el parámetro options en el método sort() o sortOn().

El valor de esta constante es 1.

Véase también