mel*_*lis 17 arrays merge actionscript actionscript-3
在ActionScript(特别是ActionScript 3.0)中合并两个排序数组的好方法是什么?生成的数组应该排序,没有重复.
has*_*seg 25
要合并(连接)数组,请使用.concat().
下面是两个如何连接数组并同时删除重复项的示例.
更方便的方法:(你可以使用ArrayUtil.createUniqueCopy()来自的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"]
Run Code Online (Sandbox Code Playgroud)
稍微快一点的方法:(你可以自己遍历数组并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;
}
Run Code Online (Sandbox Code Playgroud)