javascript - 我的 OR 运算符似乎无法正常工作 - 初学者
问题描述
我正在做一些非常简单的事情。查看字符串以计算元音。后来我发现有更好的方法来编写我正在尝试做的事情,但我觉得我的代码也应该达到相同的结果,即使它有点冗长。
问题似乎源于我的 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;
}
解决方案
array[i] === 'a'||'e'||'i'||'o'||'u'
这就是说 array[i] === 'a' OR true OR true OR true 等等。
'e'、'i'、'o'、'u' 都是真值,因此 if 语句将始终为真。
为了让它做你想做的事,你应该按照 Gerard 在评论中提到的那样做:
if (array[i] === 'a' || array[i] === 'e' || etc.) {...}
执行此操作的另一种速记方法是:
if (['a', 'e', 'i', 'o', 'u'].includes(array[i])) {...}
推荐阅读
- python - 有没有办法将 tkinter 画布嵌入 HTML 网页?
- jpa - JPA:如何将一些实体映射到另一个数据库实例的不同模式?
- rabbitmq - 带有`send_task`的芹菜扇出信号
- linux - curl -SL 有什么作用?
- mysql - 如何统一字段?
- django - 无法修复 django.core.exceptions.AppRegistryNotReady:应用尚未加载
- php - 没有重定向的自定义 404 页面 htaccess
- spring-boot - InvalidQueryException:未配置的表
- php - 将对象的公共属性转换为 JSON 的最快方法是什么
- gitlab - MR批准后如何运行作业,但如果作业失败则拒绝MR?