我一直得到“类型错误: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
答案 0 :(得分:3)
当你应该递增str
时,你会不小心递增i
:
for(var i=0;i<str.length;str++){//for loop that checks each letter
^---// replace str with i
我不知道你的其余代码是否有效,但这可以解释这个特定的错误。
答案 1 :(得分:1)
在循环的开头,您有for(var i=0;i<str.length;str++){
,将其更改为for(var i=0;i<str.length;i++){
(您基于不存在的迭代进行循环)