AS3 合并多个数组的最快方法
我正在尝试编写一个可以指定任意数量的数组的函数,并且返回值将是一个包含所有指定数组的内容的数组。
我已经做到了这一点,但这似乎是一种非常缓慢且丑陋的方法:
var ar1:Array = [1,2,3,4,5,6,7,8,9];
var ar2:Array = ['a','b','c','d','e','f','g','h'];
function merge(...multi):Array
{
var out:String = "";
for each(var i:Array in multi)
{
out += i.join(',');
}
return out.split(',');
}
trace(merge(ar1, ar2));
是否有一种内置且更有效/更好的方法来实现这一目标?结果不需要与输入的顺序相同 - 完全未排序就可以了。
I'm trying to write a function where I can specify any amount of array, and the return value will be an array containing the contents of all of the specified arrays.
I've done this, but it seems like a really slow and ugly way of doing it:
var ar1:Array = [1,2,3,4,5,6,7,8,9];
var ar2:Array = ['a','b','c','d','e','f','g','h'];
function merge(...multi):Array
{
var out:String = "";
for each(var i:Array in multi)
{
out += i.join(',');
}
return out.split(',');
}
trace(merge(ar1, ar2));
Is there an inbuilt and more efficient / nice way of achieving this? The result does not need to be in the same order as the input - completely unsorted is fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用连接。
要从二维数组中生成单个数组,您可以使用此函数:
您还可以使用 varargs 来合并多个数组:
You can use concat.
To make a single array out of a 2 dimensional array you can use this function:
You can also use varargs to merge multiple arrays:
我不知道这个方法是否比使用循环更快,但它是合并两个数组的一种(奇特的)快速方法。 (它适用于 Javascript 和 Actionscript)
I don't know if this method is faster than using loops, but it is a (fancy) quick way to merge 2 arrays. (and it works in Javascript and Actionscript)
没有尝试过,但这样的东西会对你有帮助。
Didnt try it, but something like this would help you.