Помогите исправить функцию поиска слова
Решил потренироваться в написании функций, но в чем-то видно умом слаб. Помогите найти ошибку или же её исправить. Заранее спасибо!
А сам код вот: function findWord(source, word, type){ var wordLength = word.value.length; var massiveLetter = new Array(worldLength); for(var a=0; a<=wordLength; a++){ massiveLetter[a] = word[a]; } if(type="value"){ for(var b=0; b<=source.value; b++){ if(source.value[b]=massiveLetter[a]){ if(source.value[b+1]=massiveLetter[a+1]){ break; return 23; } } } } else{ return "Debugger"; } } |
А в готовом варианте:
findWord('текст откуда надо найти слово' , 'искомое слово', 'а тут что?') |
точно забыл. это тип сейчас не объязательно просто есть текст в div`е его достают div.text а есть в input его достают input.value вот и типо тип. надеюсь понятно объяснил
|
1) Массив символов из строки получается замечательным методом split. Но в вашем случае и это не нужно - у строк есть замечательный метод charAt(n), который возвращает символ за номером n.
2) Не обязательно передавать тип. Лучше всего - это передавать сразу value, т.е. сразу строку, которую вы проверяете. То же касается и source - передавайте сразу строку. Если же всё-таки хочется передавать dom-объект, то можно внутри самой ф-ции выполнять проверку типа такой: if (obj.tagName=="input"){ //делаем всё то, что нужно в случае работы с инпутом. } else { //иначе делаем что-то другое)) }; 3) Это вы, пардоньте, с чем b сравнивать будете? for(var b=0; b<=source.value; b++) 4) Уберите break. P. S. Кстати, учтите, если вы обратитесь к элементу source[b+1], а его не будет, то это вызовет ошибку. |
Часовой пояс GMT +3, время: 00:52. |