当从if语句应该为true时,Javascript函数返回false?

时间:2013-09-02 15:18:34

标签: javascript if-statement return

我想编写一个以字母作为参数的函数,如果是元音则返回true,否则返回false。

我设置了一个字母数组,并使用if语句来拾取元音,但函数返回false天气它是元音还是辅音?

关于如何在传递元音时让函数返回true的任何想法。

var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];

function max(ltr) {


for (var item = 0; item < arr.length; item++) {
    if (item == 'a' || item == 'e' || item == 'i' || item == 'o' || item == 'u') {
        return true;
    } else {
    return false;
}
}

}

6 个答案:

答案 0 :(得分:1)

你的函数做的是检查元音列表中的数字零,并立即返回false(因为0不等于任何元音)。它甚至从未查看过ltr

您需要修复该功能,并将循环移到外面。

答案 1 :(得分:1)

与其他人一样,您正在将Intitem)与字符串进行比较。

试试这个:

if (ltr == 'a' || ltr == 'e' || ltr == 'i' || ltr == 'o' || ltr == 'u')

这样您就可以跳过整个arr,除非您出于其他原因使用它。不过我不知道为什么。

另一个(更简单)实现是使用Regular Expressions

function isVowel(letter) {
    return /^[aeuio]$/.test(letter)
}

这会测试ltr是否与RegExp匹配,以及它是否是单个字符。

答案 2 :(得分:0)

您正在将字符与int(item)进行比较 在第一步item = 0; 它不是一个字符,它返回false

答案 3 :(得分:0)

item是int,你检查它就像是字符串。使用toString(N)将其转换为另一个基数或使用arr [item]从arr获取字母。

答案 4 :(得分:0)

我认为这段代码可行:

var vowelsconsonants = function (vowel,consonant) {

if (vowel.length > 0 && consonant.length > 0) {
  if (vowel === 'a' || vowel === 'e'|| vowel === 'i' || vowel === 'o'  || vowel ==='u') {
        return true;
  } else {
        return false;
  }
} else {
  return false;
}
};

试一试......

答案 5 :(得分:-1)

您需要使用item的索引来返回数组中的值,即

if (arr[item] == 'a' || arr[item] == 'e' || arr[item] == 'i' || arr[item] == 'o' || arr[item] == 'u')