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

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

 

17 comentarios para “AS3 – Calcular del valor máximo de un array numérico”

  1. Jeje, tienes razón, aún no acabo de acostumbrarme a usar los nuevos métodos.
    Lo que no sabía es que había tanta diferencia.
    Muchas gracias Dani, actualizado!

  2. Por ponerme tiquismiquis, yo diria que lo haria asi:

    function maxDani(array:Array):Number {
    	var maxVal:Number = array[0];
    	for each(var item:Number in array){
    		maxVal=(item>maxVal)? item : maxVal;
    	}
    	return maxVal;
    }
    

    Te ahorras dos lineas y además es más rápido. En una matriz con 1 millón de números, utilizando for each tarda 47 ms de media, frente a los 256 ms de tú método.