Entradas con la etiqueta ‘array’

AS3 – Calcular el Valor Mínimo de un Array Numérico

Publicado por Iván Gajate el 8 de abril de 2009 en AS3, Flash, Tutoriales | 10 comentarios »

La compañera lógica de max es min 😉

// Devuelve el valor minimo de un array numerico
function min(array:Array):Number{
	var minVal:Number = array[0];
	for each(var item:Number in array){
		minVal = (item<minVal) ? item : minVal;    
	}
	return minVal;
}

var miArray:Array = [10, 4, 35, -76, 2];
trace(min(miArray));  // Devuelve -76

AS3 – Sumar elementos de un array

Publicado por Iván Gajate el 28 de noviembre de 2008 en AS3, Flash, Tutoriales | 12 comentarios »

Una función muy útil para sumar los elementos de un array numérico:

// Devuelve la suma de los elementos de un array numerico
function sum(array:Array, ini:int=0, fin:int=-1):Number{
	fin = (fin==-1) ? array.length : fin;
	var suma:Number=0;
	for (var i:uint = ini; i<fin ; i++){
		if(typeof(array[i]) == "number"){
	    		suma += array[i];
		}
	}
	return suma;
}

Para usarlo se le pasa un array y opcionalmente un índice de principio y otro de fin (con base cero, el primer elemento es el 0 y el último array.length). Si no se proporcionan esos valores devuelve la suma de todo el array:

var valores:Array = [2, 3, 4];

trace(sum(valores));
// Devuelve 9 (2+3+4)

trace(sum(valores, 1));
// Devuelve 7 (3+4)

trace(sum(valores, 0, 2));
// Devuelve 5 (2+3)

AS3 – Calcular del valor máximo de un array numérico

Publicado por Iván Gajate el 27 de noviembre de 2008 en AS3, Flash, Tutoriales | 17 comentarios »

Lo típico, tienes un array de números, y quieres saber el valor máximo. Extrañamente no hay ningún método en los Arrays de AS3 para hacerlo ¿? y con un sort a veces se le pira la pinza y no lo hace bien. Además, se supone que es mas costoso de rendimiento.

// Devuelve el valor maximo de un array numerico
function max(array:Array):Number{
	var maxVal:Number = 0;
	for each(var item:Number in array){
		maxVal=(item>maxVal) ? item : maxVal;
	}
	return maxVal;
}

var miArray:Array = [1, 4, 35, -76, 2];
trace(max(miArray));  // Devuelve 35

forEach en AS3

Publicado por Iván Gajate el 6 de octubre de 2008 en AS3, Flash, Tutoriales | 24 comentarios »

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.

Leer el resto de esta entrada