Просмотр полной версии : Еще раз о сравнении массивов...
Возник еще один вопрос...пускай у меня есть даже не 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();
Пушистик
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();
2 Пушистик: А что тут не так, мой код практически повторяет твой и работает аналогично, даже быстрее. Непорядок :(, надо разобраться :cool:
2 _1_Maxim: Запрос был на проверку ВСЕХ элементов, я так понял, что это без бряка.
всем спасибо, суть понял и написал сам :)
Пушистик
25.09.2003, 16:37
Оригинал написал(а) gct
2 Пушистик: А что тут не так, мой код практически повторяет твой и работает аналогично, даже быстрее. Непорядок :(, надо разобраться :cool:
ты ваще в курсе что такое синтаксис?
Clipboard Actions: Line 7: '{' expected
if(!check) function();
интересно как ты мля узнал что он быстрее работает? :D с секундомером что ли стоял возле компа? :D :cool:
(упал и ржет)
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
Ну ты меня удивил! Будь более выдержан, не ищи обиду, там где ее нет.
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 протыка:
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, по возможности, нет.
ЗЫ: Кто хочет поржать и упасть - заходитесюда (http://www.oper.ru/gallery/view.php?t=1048750671) , я умер :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
тьфу, ребячество. ты чужие ответы внимательно прочитай.
ЗЫ кстати, при обработке массива 1600 элементов притормаживание (я думаю, именно за счет обращений к свойству) достигает порядка 5 мс - в 6-ке. :)
Пушистик
26.09.2003, 17:50
_1_Maxim, я уже начитался...уж побольше тебя!
Sergey"iLoveYou", да если 1600, то конеш буит задержка...не тока при обработке последнего элемента...но и ваще при обработке массива в 1600! :)
iLoveYou
26.09.2003, 18:07
Пушистый, это вообще ты?
При чем тут "последний элемент"? Я конкретно о задержке на обращения к свойству в каждом цикле. проверь сам.
дааааа.... на одну итерацию больше!ваще скорость так уменьшаетсяяяяя...ууууу....
У меня просто нет слов. ТЫ ОБРАБАТЫВАЕШЬ НЕСУЩЕСТВУЮЩИЙ ЕЛЕМЕНТ МАССИВА!!! Из-за таких как ты выскакивают окошки типа "Неустранимая ошибка по адресу ..., память не может быть 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, а....
вощем!давайте закроем тему и не буим язвить и сорится! :)
2 Пушистик.
Зазнался чё-ли?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.