我正在尝试创建一个忽略小写元音的
for
循环。总共有 5 个,我不想写 5 个“and”语句,因为如果我不想等于 10 个值怎么办?我必须写 10 条and
/or
语句?
有没有更快的方法?
function name(str) {
let answer = ""
for (i = 0; i < str.length; i++) {
if (str[i] !== "a" && str[i] !== "e" && str[i] !== "i" && str[i] !== "o" && str[i] !== "u") {
answer += str[i]
}
return answer
}
}
我不想做 5 个
&&
运算符。有没有办法我可以做这样简单的事情(这不起作用):
if (str[i] !== ("a" && "e" && "i" && "o" && "u") {
answer += str[i]
}
return answer
我知道如何解决它,我只是想找出一种更快或更简单的方法来解决它,以防将来我有 20 个我不想=的值。做 20 个 && 运算符感觉很原始
我期待
!==
检查 str[i]
是否不等于 ()
中的所有值。
使用
Set
将其与一个字符进行比较。还要将 return answer
放在函数末尾,否则您会在第一个字符处过早地中断 for 循环:
function name(str) {
const vowels = new Set([...'aeiou']);
let answer = ""
for (i = 0; i < str.length; i++) {
if (!vowels.has(str[i])){
answer += str[i]
}
}
return answer;
}
console.log(name('asposdiusaeoasi'));