2014-01-15 4 views
0

Я продолжаю получать «Type Error: str.join не является функцией. Этот код должен принимать строковый ввод и делать каждый письмо на входе следующей буквы (например, а-> Ь, z-> а) и воспользоваться каждым гласным. кто-нибудь знает, почему это все-таки не так?Все еще не работает-функция: письмо к следующей букве (т.е. a-> b) и заглавные буквы

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 

ответ

3

вы случайно увеличивающиеся str, когда вы должны быть увеличивающимися i:

for(var i=0;i<str.length;str++){//for loop that checks each letter 
          ^---// replace str with i 

Я не знаю, если остальная часть кода работает, но это будет EXPL в этой конкретной ошибке.

1

В начале цикла вы должны for(var i=0;i<str.length;str++){, изменить что for(var i=0;i<str.length;i++){ (вы подключение петли на основе итерации, что не существует)