Помогите исправить функцию поиска слова
Решил потренироваться в написании функций, но в чем-то видно умом слаб. Помогите найти ошибку или же её исправить. Заранее спасибо!
А сам код вот:
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, время: 17:15. |