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.

 

24 comentarios para “forEach en AS3”

  1. @SdR necesitas php para enviar a un amigo un email, por lo que si es lo que estabas buscando te sugiero que bajes una de las mil clases destinadas a ese proposito que encontramos en Php. De todos modos tambien precisas integrar las dos cosas, pero supongo que eso ya lo sabras.

    Claro que tiene emocion tener mejor funcionalidades, aunque la verdad creo que alguna gente no se dio cuenta en los comentarios de que sigue siendo una iteracion como en el caso del for, recorren los elementos de un array,simplemente eso.

  2. 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.

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

  4. SI SI SI … ADIOS BLUCLESSSS!!!

    GENIAL EL TIP!!!

  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”.