Как удалить элемент из массива A, который также находится в массиве B в Actionscript 3.0? - PullRequest
1 голос
/ 16 апреля 2019

Предположим, у меня есть массив A и массив B, который содержит объект.Как «очистить» элементы из массива A, которые также существуют в B. То есть мне нужно удалить все элементы в A, которые также находятся в B.

Ответы [ 2 ]

3 голосов
/ 16 апреля 2019

Насколько я понимаю, вы пытаетесь удалить все аналогичные элементы из массива A, которые присутствуют в B?

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

Обратите внимание, что это удаляет только ОДИН из каждого элемента в массиве A. Если у вас есть несколько одинаковых экземпляров в 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 голос
/ 16 апреля 2019

Это эффективно удаляет каждый элемент 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...