forEach en AS3

Publicado por Iván Gajate el 6 de Octubre de 2008 en AS3, Flash, Tutoriales

O la muerte del 95% de los bucles :)

Al menos yo cuando pienso en un bucle, mis manos empiezan a escribir

for(var i:Number=0; i<array._length; i++){ . . . }

Un minuto de silencio por los bucles… Ya.

Y es que la nueva clase Array de AS3 tiene algunos métodos muy interesantes, uno de ellos es el forEach, que ejecuta una función con cada elemento de la matriz, que es para lo que yo uso la mayoría de las veces un bucle en Flash, para recorrer un array y hacer algo con sus elementos.

Ahora cuando queramos hacer eso en AS3, tan solo tendremos que definir la función que queramos que se ejecute y listo. Muy limpio.

La función recibe tres parámetros: el elemento que corresponde de la matriz, su índice, y el array completo por si lo queremos usar para algo.

var nombres_array:Array = ["Iván", "Pepe", "Elena", "Joan", "María"];

function trazar(item:*, index:int, array:Array):void {
	trace("Elemento " + index + " del Array: " + item);
}

nombres_array.forEach(trazar);

Y devuelve ésto:

Elemento 0 del Array: Iván
Elemento 1 del Array: Pepe
Elemento 2 del Array: Elena
Elemento 3 del Array: Joan
Elemento 4 del Array: María

Tremendamente práctico.

 

6 comentarios para “forEach en AS3”

  1. Hola!

    La verdad es que viene bien el método forEach, pero a mí me fastidia tener que crear una función nueva para un for each específico que a lo mejor sólo se ejecuta una vez. Por eso he optado por hacer esto:

    mi_array.forEach(
    function (item:*, index:int, array:Array){
    trace(item);
    }
    );

    Creo que se llama anonymous function. Es un concepto bastante útil, que ya he encontrado en varios lenguajes de alto nivel.

    Gracias por la explicación del forEach, Iván.

  2. Ole, ole y ole… se me escapan lagrimas de emocion.
    Jejeje, en serio tio, gracias.

  3. SI SI SI … ADIOS BLUCLESSSS!!!

    GENIAL EL TIP!!!

  4. ey men! excelente aporte lo acabo de modificar un poco para ponerle nombre a unos botones y funciona de diez.

  5. Jeje, por cosas como esa es por lo que me he hecho un maniático del Ctrl+S cada vez que escribo una línea
    Lo mismo con el AS3 me hago “normal” ;)

  6. Pero no tiene emoción!!!!

    Que va a ser de cuando te olvidas de poner el i++ en un while, se te cierra el Flash y no has guardado en las últimas dos horas?

    Deberían hacer cosas realmente útiles, como la clase “EnviarAUnAmigo”.

Deja un comentario

CAPTCHA image