我想要合并 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"}, ]);
我怎样才能有效地做到这一点
谢谢,
我想要合并 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"}, ]);
我怎样才能有效地做到这一点
谢谢,
有关更多属性,请使用以下内容:
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;
}
错误,我不是一个动作脚本人,但这是一个经典问题 - 按升序对两个数组进行排序,然后将它们送入您的第三个数组,始终从两个源数组中选择最小值并将写入转义到目标,如果什么你会写已经在列表的末尾 - 你最终会得到 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);
}