По-прежнему не работает - функция: буква к следующей букве (т.е. a->b) и гласные с большой буквы
Я продолжаю получать "Ошибка типа: str.join не является функцией. Этот код должен принимать строковый ввод и делать каждую букву на входе следующей буквой (т.е. a->b,z->a) и использовать заглавные буквы Кто-нибудь знает, почему это все-таки не так?
str = str.split("");//split() string into array
for(var i=0;i<str.length;str++){//for loop that checks each letter
if(str[i].match(/[a-y]/i)){
str[i]=String.fromCharCode(str[i].charCodeAt(0)+1);
}else if(str[i].match('z')){
str[i] = 'a';
}
if(str[i].match(/[aeiou]/i)){
str[i] = str[i].toUpperCase();
}
}
str2= str.join('');
//modifies letter by adding up in alphabet
//capitalizes each vowel
//join() string
return str2;
}
// keep this function call here
// to see how to enter arguments in JavaScript scroll down
2 ответа
Решение
Вы случайно увеличиваете str
когда вы должны увеличивать i
:
for(var i=0;i<str.length;str++){//for loop that checks each letter
^---// replace str with i
Я не знаю, работает ли остальная часть вашего кода, но это объясняет эту конкретную ошибку.
В начале цикла у вас есть for(var i=0;i<str.length;str++){
измените это на for(var i=0;i<str.length;i++){
(вы зацикливаетесь на основе итерации, которая не существует)