Digamos que tienen esta clase:Flex ¿Cómo llamar a una función con un número variable de parámetros?
package{
import flash.display.Sprite;
public class Main extends Sprite{
public function Main(){
trace(getAverage(1,2,3));
trace(getAverage(1,2,3,4));
trace(getAverage(1,2,3,4,5));
}
public function getAverage (...numbers) {
var total = 0;
for (var i = 0; i < numbers.length; i++) {
total += numbers [i];
}
return total/numbers.length;
}
}
}
¿Cómo lograr el "frente" de este? A saber, ¿cómo podría LLAMAR ahora "getAverage" con un número dinámico de paramétricos?
Por ejemplo, si quería hacer algo COMO:
var r:int=Math.random()*6;
var a:Array=new Array();
for (i:int=0;i<r;i++) {
a[i]=Math.random()*22;
}
// Now I have 'r' Number Of Parameters Stored In 'a'
// How Do I Call getAverage, with all the values in 'a'??
// getAverage(a) isn't right, is it?
// I'm looking for something similar to getAverage(a[0],a[1],a[...]);
var av:Number=getAverage(???);
Lo que yo quiero saber, es si tengo una función que toma un número variable de argumentos, eso es genial, pero ¿cómo puede ¿LO LLAMO con una cantidad variable de argumentos, cuando ese número no se conoce en tiempo de ejecución? Posiblemente sea imposible ... No estoy seguro, ya que 'callLater' parece ser capaz de tomar una matriz y generar un número dinámico de parámetros de alguna manera ...
NOTA: Respuestas que consisten únicamente en "¿Por qué quieres hacer esto?", Será downvoted.
P.S. ¡Este NO ES para calcular promedios! I REALICE ¡Hay maneras más sencillas de hacer todo esto! (Podría escribir getAverage para aceptar una sola matriz como su único parámetro) The Above es solo un EJEMPLO para ilustrar mi pregunta. ¿CÓMO PASAR UN NÚMERO DINÁMICO DE PARÁMETROS A UNA FUNCIÓN?
¿Cambiar la función para aceptar una matriz en su lugar? – Cameron
¿Cómo me ayuda esto a pasar una cantidad dinámica de parámetros? Eso requeriría cambiar el prototipo de la función getAverage, que frustra todo el propósito de mi pregunta. Me doy cuenta de que puedo pasar una matriz. La próxima vez lea la pregunta por favor antes de comentar. – Joshua
Su primer ejemplo parece responder a lo que desea a medida que pasa una cantidad dinámica de parámetros a una función.Eso es exactamente para lo que es el parámetro de descanso. http://www.sephiroth.it/weblog/archives/2006/06/actionscript_3_rest_parameter.php – Allan