1 javascript logic if-statement
我的if语句中的逻辑有问题.我试图让它检查字符串字符是否等于a,e,i,o或者u.然后,如果是这样,将字符添加到短语字符串中.否则在短语字符串中添加"x".
if语句似乎忽略了我的OR逻辑并返回true,无论它是否为元音.
function translate(string){
    var phrase = "";
    for(i=0; i<string.length; i++){
        if (string.charAt(i) === "a" || "e" || "i" || "o" || "u"){
           phrase += string.charAt(i);
       }else{
            console.log("x");
         }
    }
    console.log(phrase);
}
translate("this is fun");
任何帮助将不胜感激!谢谢.
if (string.charAt(i) === "a" || "e" || "i" || "o" || "u"){
这是不正确的.如果第一个条件失败(字符不是"a"),它将始终是真实的,因为它将进行评估"e",这是真实的(JavaScript返回条件中表达式的最后一个评估部分).
你可以用......
// Define them somewhere out of the loop.
var vowels = ["a", "e", "i", "o", "u"];
// Your new condition.
if (vowels.indexOf(string.charAt(i)) > -1) {
你也可以重写整个事情......
var vowels = ["a", "e", "i", "o", "u"];
var phrase = string
              .split("")
              .filter(function(char) { return vowels.indexOf(char) > -1; })
              .join("");