如何从 Actionscript 3.0 中的数组 A 中删除也在数组 B 中的元素?

How to remove element from array A that are also in array B in Actionscript 3.0?

假设我有数组 A 和包含对象的数组 B。我如何 "clean" 数组 A 中也存在于 B 中的元素。也就是说,我需要删除 A 中也存在于 B 中的所有元素。

据我了解,您是要从数组 A 中删除存在于 B 中的所有相似项吗?

for (var i:uint = 0; i < arrayB.length; i++) {
    arrayA.splice(arrayA.indexOf(arrayB[i]), 1);
}

请注意,这只会删除 arrayA 中的每一项。如果 arrayA 中有多个相同的实例存在于 arrayB 中,则只会删除一个。对于多个相同的实例,请改用它:

for (var i:uint = 0; i < arrayB.length; i++) {
    while(arrayA.indexOf(arrayB[i]) >= 0) {
        arrayA.splice(arrayA.indexOf(arrayB[i]), 1);
    }
}

这有效地删除了 Array B 中碰巧出现在 Array A 中的每个元素;

for each (var anItem:Object in B)
{
    var anIndex:int;

    do
    {
        anIndex = A.indexOf(anItem);
        A.splice(anIndex, 1);
    }
    while (anIndex > -1);
}