在ActionScript(特别是ActionScript 3.0)中合并两个排序数组的好方法是什么?生成的数组应排序并且不能重复。
最佳答案
要合并(连接)数组,请使用.concat()
。
下面是两个如何连接数组并同时删除重复项的示例。
更方便的方法:(您可以使用as3corelib中的ArrayUtil.createUniqueCopy()
)
// 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()
检查重复项)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 - 在ActionScript(3.0)中干净地合并两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/335387/