我需要合并2个arrayCollection并避免重复。它们包含具有自己属性的对象。我想避免重复。
感谢
答案 0 :(得分:0)
如果2个ArrayCollections可能包含完全相同的对象,则它将是
if (acDestination.getItemIndex(acSource[i]) == -1)
// add to the destination
如果对象不完全相同但你想避免在关键字段上重复值,请尝试在目标ArrayCollection上使用过滤器函数。
答案 1 :(得分:0)
var array1:ArrayCollection = new ArrayCollection();
var array2:ArrayCollection = new ArrayCollection();
var array3:ArrayCollection = new ArrayCollection(array1.source);
for(var i:int;i<array2.length;i++){
if (!(array3.contains(array2.getItemAt(i))))
array3.addItem(array2);
}
这是最简单的算法,适用于不那么大的列表。 contains方法将检查对象引用,如果您通过查看对象属性来定义重复项,则应使用自定义方法。