我试图创建一个函数来检查一个字母是否是元音。
为什么我总是说它不是元音?

function isItAVowel(letter) {
    var vowel = ["a", "e", "i", "o", "u"];

    for (var i=0; i < vowel.length; i++) {
        if (letter == vowel[i]) {
            document.getElementById("paragraph").innerHTML = "vowel";
        } else {
            document.getElementById("paragraph").innerHTML = "not vowel";
        }
    }
}

isItAVowel("i");

最佳答案

因为一旦找到匹配,就需要从循环中分离并退出函数。
正确处理错误的方法:

function isItAVowel(letter) {
  var vowel = ["a", "e", "i", "o", "u"];
  for (var i=0; i < vowel.length; i++) {
    if (letter == vowel[i]) {
      document.getElementById("paragraph").innerHTML = "vowel";
      return;
    }
  }
  document.getElementById("paragraph").innerHTML = "not vowel";
}

isItAVowel("i");

因为每个人都在发布有趣的不同方式来实现这一点,下面是一种完全不使用函数、执行速度最快的方法:
var isItAVowel = {
  'a': true,
  'e': true,
  'i': true,
  'o': true,
  'u': true };

!!isItAVowel["a"] == true;
!!isItAVowel["o"] == true;
!!isItAVowel["c"] == false;

09-25 16:19