在 ActionScript (3.0) 中干净地合并两个数组? [英] Cleanly merge two arrays in ActionScript (3.0)?
问题描述
在 ActionScript(特别是 ActionScript 3.0)中合并两个排序数组的好方法是什么?生成的数组应该进行排序并且没有重复.
What's a nice way to merge two sorted arrays in ActionScript (specifically ActionScript 3.0)? The resulting array should be sorted and without duplicates.
推荐答案
要合并(连接)数组,请使用 .concat()
.
To merge (concatenate) arrays, use .concat()
.
以下是两个示例,说明如何连接数组并同时删除重复项.
Below are two examples of how you can concatenate arrays and remove duplicates at the same time.
更方便的方法:(您可以使用 中的 ArrayUtil.createUniqueCopy()
as3corelib)
More convenient way: (you can use ArrayUtil.createUniqueCopy()
from as3corelib)
// from as3corelib:
import com.adobe.utils.ArrayUtil;
var a1:Array = ["a", "b", "c"];
var a2:Array = ["c", "b", "x", "y"];
var c:Array = ArrayUtil.createUniqueCopy(a1.concat(a2)); // result: ["a", "b", "c", "x", "y"]
稍微快一点的方法:(您可以自己遍历数组并使用 Array.indexOf()
检查重复项)
Slightly faster way: (you can loop through the arrays yourself and use Array.indexOf()
to check for duplicates)
var a1:Array = ["a", "b", "c"];
var a2:Array = ["c", "b", "x", "y"];
var a3:Array = ["a", "x", "x", "y", "z"];
var c:Array = arrConcatUnique(a1, a2, a3); // result: ["a", "b", "c", "x", "y", "z"]
private function arrConcatUnique(...args):Array
{
var retArr:Array = new Array();
for each (var arg:* in args)
{
if (arg is Array)
{
for each (var value:* in arg)
{
if (retArr.indexOf(value) == -1)
retArr.push(value);
}
}
}
return retArr;
}
这篇关于在 ActionScript (3.0) 中干净地合并两个数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!