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");
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!谢谢.
if (string.charAt(i) === "a" || "e" || "i" || "o" || "u"){
Run Code Online (Sandbox Code Playgroud)
这是不正确的.如果第一个条件失败(字符不是"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) {
Run Code Online (Sandbox Code Playgroud)
你也可以重写整个事情......
var vowels = ["a", "e", "i", "o", "u"];
var phrase = string
.split("")
.filter(function(char) { return vowels.indexOf(char) > -1; })
.join("");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
94 次 |
最近记录: |