PDA

Просмотр полной версии : Сравнение массивов


Denis_Pryanikov
20.09.2011, 11:10
Добрый день

Нужно сравнить два массива (обычный массив с массивом данных в XML по одному атрибуту). Т.е. выбрать повторяющиеся элементы и с ними уже дальше работать. Делаю так:

var item : Array = new Array(1,3,5,6);
//так выглядит структура xml:
//таких строк 7. данные, разумеется, разные <WEAPON TITLE="sword1" ID="1" LINK="sword.png"></WEAPON>
for each(var i : Object in item) {
if (weapon.WEAPON[i].@ID.indexOf(i) == -1) {
trace('Найдено сходство, где item id = '+item[i]+', а weapon(xml).ID = '+weapon.WEAPON[i].@ID);
//какие-то дальнейшие операции
}
}

На выходе:
Найдено сходство, где item id = 3, а weapon(xml).ID = 2
Найдено сходство, где item id = 6, а weapon(xml).ID = 4
Найдено сходство, где item id = undefined, а weapon(xml).ID = 6
Найдено сходство, где item id = undefined, а weapon(xml).ID = 7
Как же так...
Если ставить == 0, то ничего не происходит. Подскажите.

Мини-вопрос: верна ли такая запись?

weapon.WEAPON[i].@ID.indexOf(i)

Genzo
20.09.2011, 11:51
наверное все-таки вам нужно проверять :
weapon.WEAPON[i].@ID == i , хотя вообще мне кажется вам нужно пробегать по xml а не по массиву

alatar
20.09.2011, 12:37
var item : Array =[1,3,5,6];

for(var i : int = 0; i < item.length; i++) {
if (weapon.WEAPON.(@ID == i).length()) {
//какие-то дальнейшие операции
}
}