как сравнить два набора массива с помощью сценария действия

как сравнить два arraycollection

 collectionArray1 = ({first: 'Dave', last: 'Matthews'},...........n values
 collectionArray = ({first: 'Dave', last: 'Matthews'},...........n values

как выдержать сравнение.. если равный просто предупреждают nochange если не аварийный chaged

1
задан dpaksp 27 July 2010 в 06:00
поделиться

2 ответа

Если вы просто хотите узнать, отличаются ли они друг от друга, то есть по длине, порядку или отдельным элементам, вы можете сделать следующее: сначала проверяется, отличается ли длина, а затем проверяется, не отличаются ли отдельные элементы элементы разные. Это не слишком многоразовое использование, это оставлено как упражнение для читателя, чтобы разделить это на более чистые части :)

public function foo(coll1:ArrayCollection, coll2:ArrayCollection):void {
    if (coll1.length == coll2.length) {
        for (var i:int = 0; i < coll1.length; i++) {
            if (coll1[i].first != coll2[i].first || coll1[i].last != coll2[i].last) {
                Alert.show("Different");
                return;
            }
        }
    }

    Alert.show("Same");
}       
1
ответ дан 2 September 2019 в 22:43
поделиться

Я собирался сказать это.

if(collectionArray === collectionArray1) 

Но это не сработает (не тройные = знаки).Поскольку === используется для просмотра классов.

  1. Я бы написал функцию, называемую проверкой, существует ли объект в массиве.

  2. Создайте массив для хранения элементов, которые не найдены. например notFound

  3. в Collection1 просмотрите все элементы и посмотрите, существуют ли они в Collection2, если элемент не существует, добавьте его в массив notFound. Используйте функцию, созданную вами на шаге 1

  4. . Теперь проверьте Collection2, если элемент не найден, добавьте его в массив notFound.

  5. Нет 5.

0
ответ дан 2 September 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: