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.
5 de Marzo de 2010 a las 17:18
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.
5 de Diciembre de 2009 a las 12:19
Ole, ole y ole… se me escapan lagrimas de emocion.
Jejeje, en serio tio, gracias.
21 de Junio de 2009 a las 0:29
SI SI SI … ADIOS BLUCLESSSS!!!
GENIAL EL TIP!!!
10 de Diciembre de 2008 a las 9:38
ey men! excelente aporte lo acabo de modificar un poco para ponerle nombre a unos botones y funciona de diez.
13 de Octubre de 2008 a las 23:33
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”
13 de Octubre de 2008 a las 22:00
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”.