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)
Нужно сравнить два массива (обычный массив с массивом данных в 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)