我正在尝试测试一个变量是否不等于多个值,但我不想要很长的代码

问题描述 投票:0回答:1

我正在尝试创建一个忽略小写元音的

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]
是否不等于
()
中的所有值。

javascript arrays for-loop operators
1个回答
0
投票

使用

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'));

© www.soinside.com 2019 - 2024. All rights reserved.