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

时间:2019-04-16 10:57:31

标签: actionscript-3 actionscript

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

2 个答案:

答案 0 :(得分:3)

据我所知,您正在尝试从阵列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);
    }
}

答案 1 :(得分: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);
}