Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Еще раз о сравнении массивов... (http://www.flasher.ru/forum/showthread.php?t=49474)

CYD 24.09.2003 04:33

Еще раз о сравнении массивов...
 
Возник еще один вопрос...пускай у меня есть даже не 2 массива, а одна переменная со словом и массив с набором разных слов...нужно сделать проверку:
если слово не равно ни одному из элементов массива, то выполняется действие...тоесть что-то типа
if(slono ne massiv[0..massiv.length]){
function();
}

проблема в том, что я что-то не пойму как сравнить слово с каждым элементом при этом выполнив действие только после того как проверенны ВСЕ элементы, а не один из них...

gct 24.09.2003 11:34

check=0;
len=massiv.length();
for(i=0; i< len; i++)
{
if(slovo==massiv[i])check++;
}
if(!check) function();

Пушистик 24.09.2003 18:09

Код:

f = 0;
word = "bla";
arrayw = ["bl","blabla","blba","blab","blab"];
for (i=0; i<=arrayw.length; i++) {
    if (word==arrayw[i]) {
        f++;
    }
}
f==0?trace("Нет совпадений"):trace("Есть совпадения");

Цитата:

{
if(slovo==massiv[i])check++;
}
if(!check) function();
????!??!??

_1_Maxim 25.09.2003 11:01

Я так понял, что все совпадения не нужны.

check=false;
len=massiv.length();
for(i=0; i< len; i++)
{
if(slovo==massiv[i])
{
check=!check;
break;

}
}
if(!check) function();

gct 25.09.2003 11:06

2 Пушистик: А что тут не так, мой код практически повторяет твой и работает аналогично, даже быстрее. Непорядок :(, надо разобраться :cool:
2 _1_Maxim: Запрос был на проверку ВСЕХ элементов, я так понял, что это без бряка.

CYD 25.09.2003 12:32

всем спасибо, суть понял и написал сам :)

Пушистик 25.09.2003 16:37

Цитата:

Оригинал написал(а) gct
2 Пушистик: А что тут не так, мой код практически повторяет твой и работает аналогично, даже быстрее. Непорядок :(, надо разобраться :cool:

ты ваще в курсе что такое синтаксис?

Цитата:

Clipboard Actions: Line 7: '{' expected
if(!check) function();

интересно как ты мля узнал что он быстрее работает? :D с секундомером что ли стоял возле компа? :D :cool:
(упал и ржет)

gct 25.09.2003 17:17

2 Пушистик: Насчёт того, что пропустил фигурную скобку - признаю, это моя проблема ещё с Сишки пошла, т.к. там, если одна строка после if,for... , то фигурные скобки ставить не надо. А вывод по скорости я сделал на основе оптимизации. И не надо падать и ржать, я хотел культурно разобраться.

iLoveYou 25.09.2003 18:43

Цитата:

Оригинал написал(а) Пушистик

ты ваще в курсе что такое синтаксис?
Clipboard Actions: Line 7: '{' expected
if(!check) function();

Плазман, тебя кто так сильно стукнул? такая запись вполне уместна. function() - так человек просто обозначил вызов какой-то функции. а ты вставил код и, увидев его нерабочесть, радостно заверещал про какой-то там синтаксис....
2 gct так что там насчет скорости?

Пушистик 25.09.2003 19:41

Sergey"iLoveYou", сказал бы я тебе всё что я про тя думаю...но промолчу...
если мля все буду так писать!!!!???тада шо это буит???
типа:
vars=..........if(fdsfsd)for(i=0)....
я мля лично считаю если код не верен синтаксису-значит это уже не as!
ну ладно пусть мой код медленее...но мне интересно....пусть он мне объяснит...как он у него рабтал вот с ЭТИМ:

Цитата:

len = massiv.length();
а???

Код:

massiv = [551,sdf,654456];
check = 0;
len = massiv.length();
trace(len);

шо то я там не наблюдаю ничего...
этот доисторический метод работал обычно со строками, а если его применить к массиву в ПРАВИЛЬНОМ СИНТАКСИСЕ...то мне чё-та кажется что он вернет далеко не длину массива...

Код:

massiv = [551,sdf,654456];
check = 0;
len = length(massiv);
trace(len);

он вернет количество символов в массиве...
так что не надо грузить что мой код быстрее, если даже не можешь его по нормальному написать!!!!!!...
я никого не заставлял пользоватся моим кодом...
и в этом случае Sergey"iLoveYou" по ходу тебе кто-то постучал по бошке...потому что стоить из себя суперумного и острить у тебя ой как не получается...

iLoveYou 25.09.2003 20:10

2 Пушистик
 
Ну ты меня удивил! Будь более выдержан, не ищи обиду, там где ее нет.
Цитата:

Sergey"iLoveYou", сказал бы я тебе всё что я про тя думаю...но промолчу...
ну скажи в личке, раз приперло.
Цитата:

если мля все буду так писать!!!!???тада шо это буит???
типа:
vars=..........if(fdsfsd)for(i=0)....
я мля лично считаю если код не верен синтаксису-значит это уже не as!
не стоит обобщать. я говорил о конкретном примере. да к тому же после этого потока сознания у меня возникло чувство, что ты не до конца осознаешь значение слова "синтаксис".
Цитата:

пусть он мне объяснит...как он у него рабтал вот с ЭТИМ:
len = massiv.length();
не надо лицемерия. ты человек опытный и знаешь, что скобочки он поставил машинально/по привычке.
Цитата:

так что не надо грузить что мой код быстрее, если даже не можешь его по нормальному написать!!!!!!...
зашибись: "мой код быстрее, потому что оппонент ошибся при набивании своего кода!" не стыдно? :)
Цитата:

и в этом случае Sergey"iLoveYou" по ходу тебе кто-то постучал по бошке...потому что стоить из себя суперумного и острить у тебя ой как не получается...
а вот в этом предложении не наблюдается причинно-следственной связи. я и не острил. ты ошибся и я сказал об этом. ну, может быть, немного невежливо. если тебя это задело, то прошу прощения. от тебя признания собственных ошибок и извинений в мой адрес не жду, потому что не надо.
к сведению: моя личка готова к принятию твоей ругани :)

Пушистик 25.09.2003 22:30

:)
 
да не буду я те ничё слать...забудем!
Цитата:

зашибись: "мой код быстрее, потому что оппонент ошибся при набивании своего кода!" не стыдно?
ну ладно пусть мой медленее....как вы это узнали?? :confused: очень интересно...

iLoveYou 25.09.2003 23:01

2 Пушистый
 
Цитата:

ну ладно пусть мой медленее....как вы это узнали?? очень интересно...
я и не утверждал, что твой медленней.
но интуиция подсказывает... побалуйся гетТаймером() и возьми массив на тыщу элементов - мож, что и прояснится.

gct 26.09.2003 11:18

Прояснение всего
 
Насчёт меня - у меня в скрипте 2 протыка:
1) слово check зарезервировано Flash как FStyleFormat.check, но в данном случае это будет работать без проблем(я дебагил - Flash всё пропустил без ворнингов)
2) со скобками после length оно, действительно, не работает - тут причина в том, что на работе флэша у меня нет (если кто-то найдёт дистрибутив под FreeBSD - ставлю пиво даже камчатке), и я не могу проверить работоспособность скрипта. Зная это я не отсылаю набросаные скрипты, если вижу, что человек вообще не разбирается в АС.
3)Скрипт в ответе я максимально приблизил к скрипту в вопросе, если спрашивающий пишет function(), то, скорее всего, он понимает что это подразумевает определённый набор кода.

Насчёт того, что я записываю длину массива в переменную перед циклом - тут дело не в скорости, а скорее в стиле. Нас так просто учили на методах оптимизации алгоритмов, что в определении конечного, начального значения и шага счётчика должно быть как можно меньше операций. Да, я не спорю, на современных компьютерах это может быть незаметно, но это вырабатывает красивый стиль.

А теперь о главном - тут и скорость тоже присутствует.
У Пушистика
for (i=0; i<=arrayw.length; i++)
проходит на один шаг больше, чем у меня
for(i=0; i< len; i++)
по причине <= вместо <, вот вам и скорость, но не это главное, на этом последнем шаге
он проверяет НЕСУЩЕСТВУЮЩИЙ елемент массива. Поскольку , если в массиве 4 елемента, то length вернёт 4 и в цикле на последнем шаге буде проверяться элемент arrayw[4], которого не существует(последний элемент массива - arrayw[3]). И дело не в том, что ошибка у него, дело в том, что он это отсылает ньюбам, которые уверены в его авторитетности.

А количество фигурных скобок - это дело личного стиля, я в for ставлю, а в if, по возможности, нет.

ЗЫ: Кто хочет поржать и упасть - заходитесюда , я умер :D

_1_Maxim 26.09.2003 13:19

Целиком согласен!

И ещё.
Длину цикла нужно оформлять в переменную, лучше локальную. Потому-что в общем случае длина цикла может быть изменена в его теле. И объект "цикл" будет следить за этим если

for (i=0; i<=arrayw.length; i++)

А это ещё одно обращение к свойству length.

Пушистик 26.09.2003 16:10

дааааа.... на одну итерацию больше!ваще скорость так уменьшаетсяяяяя...ууууу....
уш лучше ошибится в операторе чем написать arrayw.lenght()...

Цитата:

И дело не в том, что ошибка у него, дело в том, что он это отсылает ньюбам, которые уверены в его авторитетности
мои скприты хотя бы РАБОЧИИ...

Цитата:

Длину цикла нужно оформлять в переменную, лучше локальную. Потому-что в общем случае длина цикла может быть изменена в его теле...
_1_Maxim, почитай статью "Анатомия переменных" от Мука (www.moock.org) и не неси чепухи...

_1_Maxim 26.09.2003 17:03

Пушистик, повежливее пожалуйста.
И читай побольше и думай почаще.

iLoveYou 26.09.2003 17:09

2 Пушистик
 
тьфу, ребячество. ты чужие ответы внимательно прочитай.

ЗЫ кстати, при обработке массива 1600 элементов притормаживание (я думаю, именно за счет обращений к свойству) достигает порядка 5 мс - в 6-ке. :)

Пушистик 26.09.2003 17:50

_1_Maxim, я уже начитался...уж побольше тебя!

Sergey"iLoveYou", да если 1600, то конеш буит задержка...не тока при обработке последнего элемента...но и ваще при обработке массива в 1600! :)

iLoveYou 26.09.2003 18:07

Пушистый, это вообще ты?
При чем тут "последний элемент"? Я конкретно о задержке на обращения к свойству в каждом цикле. проверь сам.

gct 26.09.2003 19:41

Цитата:

дааааа.... на одну итерацию больше!ваще скорость так уменьшаетсяяяяя...ууууу....
У меня просто нет слов. ТЫ ОБРАБАТЫВАЕШЬ НЕСУЩЕСТВУЮЩИЙ ЕЛЕМЕНТ МАССИВА!!! Из-за таких как ты выскакивают окошки типа "Неустранимая ошибка по адресу ..., память не может быть Read".

А насчёт работоспособности скриптов - моя ошибка легкозаметна и быстроисправима, твоя же...

ЗЫ: Sergey"iLoveYou" - с юбилеем.

Пушистик 27.09.2003 16:45

Цитата:

У меня просто нет слов. ТЫ ОБРАБАТЫВАЕШЬ НЕСУЩЕСТВУЮЩИЙ ЕЛЕМЕНТ МАССИВА!!! Из-за таких как ты выскакивают окошки типа "Неустранимая ошибка по адресу ..., память не может быть Read"
О БОЖЕ! Так это из-за меняяяяяя!!!!!!!!!!ааааааааааа!!!!!знайте теперь люди!!если увидите такую ошибку!!!!значит она из-за меня!!!! :D Какая трагедия!!!! :D

Цитата:

А насчёт работоспособности скриптов - моя ошибка легкозаметна и быстроисправима, твоя же...
аха...твой код ВООБЩЕ НЕ РАБОЧИЙ!!! а мой РАБОТАЕТ даже с такой ошибочкой !!!!!!:)конечно конечно....

gct, твои высказывания вчера увидел один мой знакомый чел!он валялся... :D

iLoveYou 27.09.2003 19:32

Цитата:

Оригинал написал(а) Пушистик

аха...твой код ВООБЩЕ НЕ РАБОЧИЙ!!! а мой РАБОТАЕТ даже с такой ошибочкой !!!!!!:)конечно конечно....

опять-25.
вылитый jenius2004
ЗЫ глупо так лажаться.

Пушистик 27.09.2003 23:55

:)
 
неее....эт не я похож на jenius, а....
вощем!давайте закроем тему и не буим язвить и сорится! :)

nuran 28.09.2003 14:07

2 Пушистик.

Зазнался чё-ли?


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

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