在ActionScript(特别是ActionScript 3.0)中合并两个排序数组的好方法是什么?生成的数组应该排序,没有重复.
要合并(连接)数组,请使用.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"]
稍微快一点的方法:(你可以自己遍历数组并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; }