actionscript-3 - 在ActionScript(3.0)中干净地合并两个数组?

标签 actionscript-3 arrays actionscript merge

在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/

相关文章:

mysql - 将预先存在的 Flex/Java/Hibernate/MySQL 应用程序迁移到可移植发行版的 CD 上的最佳途径?

apache-flex - 柔性 : Dynamically create a preview image for a video

c++ - 不使用字符串函数逐字读取字符数组

actionscript-3 - ActionScript 编码标准

actionscript-3 - 在 ActionScript 中定义

css - Spark 数据网格交替项颜色

javascript - 使用 jquery 从多个数组集中删除特定数组

mysql - 使用 mysql 查询的 IN 数组和 LIKE 条件

javascript - 什么会阻止 actionscript flash 在 IE9 中调用 JS 对象?

flash - 如何在 ActionScript 中使按钮只能点击一次?