![]() |
Еще раз о сравнении массивов...
Возник еще один вопрос...пускай у меня есть даже не 2 массива, а одна переменная со словом и массив с набором разных слов...нужно сделать проверку:
если слово не равно ни одному из элементов массива, то выполняется действие...тоесть что-то типа if(slono ne massiv[0..massiv.length]){ function(); } проблема в том, что я что-то не пойму как сравнить слово с каждым элементом при этом выполнив действие только после того как проверенны ВСЕ элементы, а не один из них... |
check=0;
len=massiv.length(); for(i=0; i< len; i++) { if(slovo==massiv[i])check++; } if(!check) function(); |
Код:
f = 0;Цитата:
|
Я так понял, что все совпадения не нужны.
check=false; len=massiv.length(); for(i=0; i< len; i++) { if(slovo==massiv[i]) { check=!check; break; } } if(!check) function(); |
2 Пушистик: А что тут не так, мой код практически повторяет твой и работает аналогично, даже быстрее. Непорядок :(, надо разобраться :cool:
2 _1_Maxim: Запрос был на проверку ВСЕХ элементов, я так понял, что это без бряка. |
всем спасибо, суть понял и написал сам :)
|
Цитата:
Цитата:
(упал и ржет) |
2 Пушистик: Насчёт того, что пропустил фигурную скобку - признаю, это моя проблема ещё с Сишки пошла, т.к. там, если одна строка после if,for... , то фигурные скобки ставить не надо. А вывод по скорости я сделал на основе оптимизации. И не надо падать и ржать, я хотел культурно разобраться.
|
Цитата:
2 gct так что там насчет скорости? |
Sergey"iLoveYou", сказал бы я тебе всё что я про тя думаю...но промолчу...
если мля все буду так писать!!!!???тада шо это буит??? типа: vars=..........if(fdsfsd)for(i=0).... я мля лично считаю если код не верен синтаксису-значит это уже не as! ну ладно пусть мой код медленее...но мне интересно....пусть он мне объяснит...как он у него рабтал вот с ЭТИМ: Цитата:
Код:
massiv = [551,sdf,654456];этот доисторический метод работал обычно со строками, а если его применить к массиву в ПРАВИЛЬНОМ СИНТАКСИСЕ...то мне чё-та кажется что он вернет далеко не длину массива... Код:
massiv = [551,sdf,654456];так что не надо грузить что мой код быстрее, если даже не можешь его по нормальному написать!!!!!!... я никого не заставлял пользоватся моим кодом... и в этом случае Sergey"iLoveYou" по ходу тебе кто-то постучал по бошке...потому что стоить из себя суперумного и острить у тебя ой как не получается... |
2 Пушистик
Ну ты меня удивил! Будь более выдержан, не ищи обиду, там где ее нет.
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
к сведению: моя личка готова к принятию твоей ругани :) |
:)
да не буду я те ничё слать...забудем!
Цитата:
|
2 Пушистый
Цитата:
но интуиция подсказывает... побалуйся гетТаймером() и возьми массив на тыщу элементов - мож, что и прояснится. |
Прояснение всего
Насчёт меня - у меня в скрипте 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 |
Целиком согласен!
И ещё. Длину цикла нужно оформлять в переменную, лучше локальную. Потому-что в общем случае длина цикла может быть изменена в его теле. И объект "цикл" будет следить за этим если for (i=0; i<=arrayw.length; i++) А это ещё одно обращение к свойству length. |
дааааа.... на одну итерацию больше!ваще скорость так уменьшаетсяяяяя...ууууу....
уш лучше ошибится в операторе чем написать arrayw.lenght()... Цитата:
Цитата:
|
Пушистик, повежливее пожалуйста.
И читай побольше и думай почаще. |
2 Пушистик
тьфу, ребячество. ты чужие ответы внимательно прочитай.
ЗЫ кстати, при обработке массива 1600 элементов притормаживание (я думаю, именно за счет обращений к свойству) достигает порядка 5 мс - в 6-ке. :) |
_1_Maxim, я уже начитался...уж побольше тебя!
Sergey"iLoveYou", да если 1600, то конеш буит задержка...не тока при обработке последнего элемента...но и ваще при обработке массива в 1600! :) |
Пушистый, это вообще ты?
При чем тут "последний элемент"? Я конкретно о задержке на обращения к свойству в каждом цикле. проверь сам. |
Цитата:
А насчёт работоспособности скриптов - моя ошибка легкозаметна и быстроисправима, твоя же... ЗЫ: Sergey"iLoveYou" - с юбилеем. |
Цитата:
Цитата:
gct, твои высказывания вчера увидел один мой знакомый чел!он валялся... :D |
Цитата:
вылитый jenius2004 ЗЫ глупо так лажаться. |
:)
неее....эт не я похож на jenius, а....
вощем!давайте закроем тему и не буим язвить и сорится! :) |
2 Пушистик.
Зазнался чё-ли? |
| Часовой пояс GMT +4, время: 17:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.