Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сравнение массивов (http://www.flasher.ru/forum/showthread.php?t=168367)

Denis_Pryanikov 20.09.2011 11:10

Сравнение массивов
 
Добрый день

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

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, то ничего не происходит. Подскажите.

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

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


Genzo 20.09.2011 11:51

наверное все-таки вам нужно проверять :
Код AS3:

weapon.WEAPON[i].@ID == i

, хотя вообще мне кажется вам нужно пробегать по xml а не по массиву

alatar 20.09.2011 12:37

Код AS3:

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



Часовой пояс GMT +4, время: 00:08.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.