Jos*_*hua 5 apache-flex air flash actionscript actionscript-3
让我们说我有这个课程:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我如何实现这个"相反"?也就是说,我怎么能用动态数量的参与者来调用'getAverage'?
例如,如果我想做一些喜欢的事情:
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(???);
Run Code Online (Sandbox Code Playgroud)
我想知道的是,如果我有一个带有可变数量参数的函数,这很好,但是如果在运行时不知道该数字,我怎么能用可变数量的参数调用它?可能这是不可能的......我只是不确定,因为'callLater'似乎能够采取一个数组并以某种方式从它生成一个动态数量的参数......
注意:仅包含"您为什么要这样做?"的答案将被低估.
PS这不是关于计算平均值! 我实现有更简单的方法做所有这一切!(我可以写getAverage来接受单个数组作为它唯一的参数)上面只是一个示例来说明我的问题.如何将动态数量的参数传递给功能?