【发布时间】:2011-07-09 18:14:35
【问题描述】:
好的,所以我们都知道在函数中使用 ...(rest)参数可以让我们传递任意数量的参数,就像 Adobe AS3 手册中的示例一样:
function traceArgArray(x: int, ... args) {
for (var i:uint = 0; i < args.length; i++) {
trace(args[i]);
}
}
traceArgArray(1, 2, 3);
但是,我希望能够做的是选择传递单个参数或从现有数组传递参数:
myArray:Array = new Array(1,2,3);
等等:
traceArgArray(myArray);
正如我在此处所写的,该函数将 myArray 视为单个对象,因此输出为 1,2,3 - 表示整个数组,而不是数组的各个内容。
为了将 myArray 转换为一个逗号分隔的列表,其余操作员会将其识别为单个元素的列表,我尝试了这个:
traceArgArray(myArray.join());
但这并没有改变输出。在这种情况下,参数似乎被解释为单个字符串而不是逗号分隔的列表。
所以,我希望有人可以帮助我解决的难题可以通过以下两种方式之一表达:
是否有可能获取其余参数以将数组参数视为以逗号分隔的参数列表?
-或-
有没有一种方法可以将数组转换为逗号分隔的列表,然后将该列表作为逗号分隔的列表(而不是长字符串)传递给函数,以便其余运算符可以正确解释它?
我想做的基本事情——能够将值数组传递给接受任意数量参数的函数——似乎是通用的,所以也许有一个我没有看到的解决方法因为我对 rest 运算符本身很着迷。
感谢阅读!
【问题讨论】:
标签: actionscript-3