По-прежнему не работает - функция: буква к следующей букве (т.е. 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++){ (вы зацикливаетесь на основе итерации, которая не существует)

Другие вопросы по тегам