如何解决我的 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])) {...}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。