как сравнить два arraycollection
collectionArray1 = ({first: 'Dave', last: 'Matthews'},...........n values
collectionArray = ({first: 'Dave', last: 'Matthews'},...........n values
как выдержать сравнение.. если равный просто предупреждают nochange если не аварийный chaged
Если вы просто хотите узнать, отличаются ли они друг от друга, то есть по длине, порядку или отдельным элементам, вы можете сделать следующее: сначала проверяется, отличается ли длина, а затем проверяется, не отличаются ли отдельные элементы элементы разные. Это не слишком многоразовое использование, это оставлено как упражнение для читателя, чтобы разделить это на более чистые части :)
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");
}
Я собирался сказать это.
if(collectionArray === collectionArray1)
Но это не сработает (не тройные = знаки).Поскольку === используется для просмотра классов.
Я бы написал функцию, называемую проверкой, существует ли объект в массиве.
Создайте массив для хранения элементов, которые не найдены. например notFound
в Collection1 просмотрите все элементы и посмотрите, существуют ли они в Collection2, если элемент не существует, добавьте его в массив notFound. Используйте функцию, созданную вами на шаге 1
. Теперь проверьте Collection2, если элемент не найден, добавьте его в массив notFound.
Нет 5.