Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何合并两个arraycollection,并且没有重复项?_Actionscript 3_Flex4 - Fatal编程技术网

Actionscript 3 如何合并两个arraycollection,并且没有重复项?

Actionscript 3 如何合并两个arraycollection,并且没有重复项?,actionscript-3,flex4,Actionscript 3,Flex4,我要合并2个数组集合,不允许重复 var ac1:ArrayCollection = new ArrayCollection([ {s:"4",e:"8"}, {s:"9",e:"10"}, ]); var ac2:ArrayCollection = new ArrayCollection([ {s:"2",e:"3"}, {s:"4",e:"8"}, {s:"9",e:"10"}, {s:"11",e:"12"}, ]); 我怎样才能有效地做这件事 谢谢,呃,我不是actionscript的

我要合并2个数组集合,不允许重复

var ac1:ArrayCollection = new ArrayCollection([ {s:"4",e:"8"}, {s:"9",e:"10"}, ]);
var ac2:ArrayCollection = new ArrayCollection([ {s:"2",e:"3"}, {s:"4",e:"8"}, {s:"9",e:"10"}, {s:"11",e:"12"}, ]);
我怎样才能有效地做这件事


谢谢,

呃,我不是actionscript的人,但这是一个典型的问题-按升序对两个数组进行排序,然后将它们输入到第三个数组中,始终从两个源数组中选择最低值,如果要写入的内容已经在列表的末尾,则转义对目标的写入-您将得到n个输入数组中唯一值的排序列表

也许这是一个很好的开端

function equals(o1:Object, o2:Object)
{
    return (o1 && o2) && (o1 != o2) && (o1.s != o2.s) && (o1.e != o2.e);
}

function merge(a:Array, b:Array):Array
{
    const source = [];
    var isContained:Boolean = false;
    for (var i:int; i< a.length;i++) {
        isContained = false
        for (var j:int; j< b.length;j++) {
            if (equals(a[i], b[j])) {
                isContained = true;
                break;
            }
        }
        if (!isContained) {
            source.push(a[1]);
        }
    }
    return source.concat(b);
}
函数等于(o1:对象,o2:对象)
{
返回(o1&&o2)&&(o1!=o2)&(o1.s!=o2.s)&&(o1.e!=o2.e);
}
函数合并(a:数组,b:数组):数组
{
常量源=[];
包含变量:布尔值=false;
for(变量i:int;i
有关更多属性,请使用以下内容:

function equals(o1:Object, o2:Object):Boolean
{
    if (o1 == o2) return true;
    if (!o1 || !o2) return false;

    for (var key:String in o1)
    {
        if (!(key in o2)) return false;
        if (o1[key] != o2[key]) return false;
    }

    return true;
}

这不是一个很难的问题。您尝试了什么?谢谢,如果我在对象中有10个属性(例如,s,e,name,destin…等等),我需要比较所有属性吗!始终从两个源数组中选择最低值,如果要写入的内容已经在列表的末尾,则转义对目标的写入-最终将得到n个输入数组中唯一值的排序列表?我不明白这一点。你能举一个例子对这两个数组进行排序吗?然后创建一个新的empy数组,然后进入一段时间(排序数组不是空的){找到哪个排序数组的值最小,取它,并将该数组的指针向前移动-如果你选择的值不在你填充的数组的末尾,将它添加到末尾}