Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Сравнение двух массивов произвольной длины (http://www.flasher.ru/forum/showthread.php?t=143677)

parovozeg 23.08.2010 00:03

Сравнение двух массивов произвольной длины
 
Добрый вечер всем!
Сижу никак не могу решить проблему со сравнением 2-х массивов.Задача такая: имеется 2 массива произвольной длины с датами (даты записаны в формате 20100829), которые надо сравнить (каждый элемент первого массива с каждым элементом второго) и при совпадении допустим выдать сообщение. На данный момент имеется следующая функция:
Код AS1/AS2:

function compare(){
for (i=0; i<=Math.max(date_arr.length,thenumbers1.length); i++) {
if (date_arr[i]=thenumbers1[i]) {
                status_txt.text="Есть совпадение";
                break;
                }
        }
 
}
compare();

Но при попытке выполнения, все виснет. Хотелось бы узнать каким именно образом правильно реализовать эту задачу.Я только начинаю, поэтому пока даже с такими задачами мне справиться проблематично.

udaaff 23.08.2010 00:25

Оператор сравнение — это ==, а у вас "присвоить" в условии. И длину для условия в цикле for правильно вычислять до этого самого цикла, иначе одно и тоже значение у вас при каждой итерации будет вычисляться. И почему вы максимальную длину берете, а не минимальную?

parovozeg 23.08.2010 00:51

Да,действительно.Спасибо.Но разве если поставить минимальную длину,не будет ли сравнение проходить до элемента второго массива с индексом равным длине первого массива(в случае если первый короче второго)?

udaaff 23.08.2010 00:54

Цитата:

Но разве если поставить минимальную длину,не будет ли сравнение проходить до элемента второго массива с индексом равным длине первого массива(в случае если первый короче второго)?
Будет. А что вы с чем далее собираетесь сравнивать, если элементов в одном из массивов уже не будет?

parovozeg 23.08.2010 00:58

Мне надо сравнить первое занчение массива date_arr со всеми значениями thenumbers1,потом второе,и так далее на предмет совпадения.Надо прогнать все значения date_arr

udaaff 23.08.2010 01:06

Код AS1/AS2:

function compare(array1:Array, array2:Array)
{
        var iLength:Number = array1.length;
        var jLength:Number = array2.length;
        for (var i:Number = 0; i < iLength; i++)
        {
                var a:Number = array1[i];
                for (var j:Number = 0; j < jLength; j++)
                {
                        var b:Number = array2[j];
                        if (a == b)
                        {
                                trace("совпадение");
                        }
                }
        }
}


parovozeg 23.08.2010 01:57

По какой-то причине отказывается у меня работать,хотя по сути должно.Буду разбираться.

Добавлено через 1 час 7 минут
Да все отлично.У меня была ошибка.Большое спасибо!


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

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