【问题标题】:My OR operator doesn't seem to be working - level beginner [duplicate]我的 OR 运算符似乎不起作用 - 初学者级别 [重复]
【发布时间】:2020-12-23 19:45:50
【问题描述】:

我正在做一些非常简单的事情。查看字符串以计算元音。 后来我发现有更好的方法来编写我正在尝试做的事情,但我觉得我的代码也应该达到相同的结果,即使它有点冗长。

问题似乎源于我的 IF 条件。 我写 if (array[i] === 'a'||'e'||'i'||'o'||'u') 这个想法是检查字母是a还是e还是i等。

如果我一次只查找一个元音,它会起作用。 但是,我认为使用 OR 运算符可以扩展条件以包含其他值。

无论如何,我希望有人能够解释为什么它不起作用。 我将在下面留下完整的代码。

答案是我给出的任何句子的完整字母数。

function VowelCount(str) { 

    str.toLowerCase();  
let count = 0;
let array = str.split('');

for (let i = 0; i < array.length; i++){
  if (array[i] === 'a'||'e'||'i'||'o'||'u'){
    count++
  }
}

  return array; 
}

【问题讨论】:

  • if (array[i] === 'a' || array[i] === 'e' || array[i] === 'o'

标签: javascript arrays conditional-statements operators counting


【解决方案1】:
array[i] === 'a'||'e'||'i'||'o'||'u'

这是说数组[i] === 'a' OR true OR true OR true 等

'e'、'i'、'o'、'u' 都是真值,因此 if 语句将始终为真。

为了让它做你想做的事,你应该像杰拉德在 cmets 中提到的那样做:

if (array[i] === 'a' || array[i] === 'e' || etc.) {...}

另一种简便的方法是:

if (['a', 'e', 'i', 'o', 'u'].includes(array[i])) {...}

【讨论】:

  • 太棒了!谢谢你们!
猜你喜欢
  • 1970-01-01
  • 2018-12-19
  • 2012-01-10
  • 1970-01-01
  • 2018-08-22
  • 2021-01-31
  • 2016-07-06
  • 2018-12-28
  • 1970-01-01
相关资源
最近更新 更多