我是Javascript的新手,我正在尝试做一些练习。我在这里找到了其他更有效的方法来解决这个问题,但无论如何,这是我尝试这样做的方式:
var char = prompt("Give me a letter");
char = char.toLowerCase();
function isVowel(char){
var vowels = new Array('a','e','i','o','u');
for(i = 0; i < vowels.length; i++){
if(vowels[i] == char){
return "This letter is a vowel.";
}else{
return "This letter is not a vowel.";
}
}
}
alert(isVowel(char));
现在,我知道这不是最好的方法,但我想了解我的for循环有什么问题,因为“a”是它认为是元音的唯一字母。 有人能指出我没有在整个阵列中运行的原因吗?
提前致谢
答案 0 :(得分:3)
在你确定&#34;是&#34;之前你不应该回来。或&#34;不&#34;答案。
尝试这样的事情:
var char = prompt("Give me a letter");
char = char.toLowerCase();
function isVowel(char){
var vowels = new Array('a','e','i','o','u');
for(i = 0; i < vowels.length; i++){
if(vowels[i] == char){
return "This letter is a vowel.";
}
}
return "This letter is not a vowel.";
}
alert(isVowel(char));
答案 1 :(得分:2)
var char = prompt("Give me a letter");
char = char.toLowerCase();
function isVowel(char){
var vowels = new Array('a','e','i','o','u');
var isv = false;
for(i = 0; i < vowels.length; i++){
if(vowels[i] == char){
isv = true;
}
}
if( isv == true)
return "This letter is a vowel.";
else
return "This letter is not a vowel.";
}
}
alert(isVowel(char));
答案 2 :(得分:1)
它没有运行整个数组的原因是因为你返回一个值。这会在第一次迭代后停止该功能。
这是一个更简单的解决方案,可以识别元音而无需遍历数组:
function isVowel(char) {
if (vowels.indexOf(char) >= 0) {
return "The character \""+char+"\" is a vowel.";
} else {
return "The character \""+char+"\" is NOT a vowel.";
}
}
var vowels = new Array('a','A','e','E','i','I','o','O','u','U');
alert(isVowel('e'));
alert(isVowel('f'));
indexOf
功能基于answer here。