我刚开始学习Javascript,我想知道:
var input = prompt();
var checkVowel = function(input){
if (input === "a" || input ==="e" || input === "i" || input === "o" || input === "u" ){
return true;
}else{
return false;
}
}
checkVowel(input);
每次写入多个输入而不是input === "e"
是不是更短的方式?
答案 0 :(得分:5)
您可以使用正则表达式执行此操作:
var checkVowel = function(input) {
return /^[aeiou]$/.test(input);
};
或者将indexOf
与数组一起使用:
var checkVowel = function(input) {
return ['a','e','i','o','u'].indexOf(input) > -1;
};
答案 1 :(得分:2)
您也可以使用普通字符串:
var checkVowel = function(input) {
return "aeiou".indexOf(input) >= 0;
};
答案 2 :(得分:1)
我通常在这种情况下使用这种模式:
var checkVowel = function(input) {
if (['a', 'e', 'i', 'o', 'u'].indexOf(input) !== -1) {
return true;
} else {
return false;
}
}
答案 3 :(得分:1)
没有更短的方式来编写多个输入而不是输入===" e"每一次?
如果你想检查多个输入,除了检查每个输入之外没有更短的方法(但如果检查所有其他答案,有更好的方法可以做到)。
我建议你阅读switch
statement:
var checkVowel = function(input){
switch (input) {
case "a":
case "e":
case "i":
case "o":
case "u":
return true;
default:
return false;
}
}
开关允许您以可读的方式检查多个输入。这种方法根本不短,但更具可读性。
答案 4 :(得分:0)
这是我得到的最短的。您还可以使用Array.prototype.includes()来减少多个OR条件。
const isVowel = input => ['a', 'e', 'i', 'o', 'u'].includes(input);