"检查一个字母是否是一个元音" - 函数返回false?

She*_*den 4 javascript

练习:编写一个带字符的函数(即长度为1的字符串),如果是元音,则返回true,否则返回false.

我的代码:

var findVowel = function(letter) {

var vowels = ["a", "e", "i", "o", "u"];

for(var i in vowels){

    if(letter === i){
        return true;
    } else {
        return false;
    }
}

};

findVowel("e");
Run Code Online (Sandbox Code Playgroud)

我已经研究过高低,对我来说代码看起来好像应该但它会返回false,尽管是否给出了元音.

Ada*_*dam 7

不要在数组中使用for..in循环.i是指数而不是价值.此外,您的代码只会检查字母"a".它永远不会进入循环的下一次迭代,因为它在第一次迭代后总是返回true或false.

你需要将return false移动到循环之后,这样它只有在对所有元音进行检查后才会返回false.

你还应该切换到更"传统"的for..loop风格.

我甚至不会进入整个"是''元音?" 问题" :)

这是固定的代码:

var findVowel = function(letter) {

    var vowels = ["a", "e", "i", "o", "u"];

    for(var i = 0; i < vowels.length; i++){ // don't use for...in with Arrays
        if(letter === vowels[i]){// Use array indexing instead
            return true;
         }
    }

    return false;// This is after the loop

};
Run Code Online (Sandbox Code Playgroud)

尝试一下:http://jsfiddle.net/adamzr/3yhFS/