我在做一件非常简单的事情。查看字符串以计算元音。我后来发现,有一种更好的方法来编写我想要做的事情,但我觉得我的代码也应该达到同样的结果,即使它有点冗长。
这个问题似乎源于我的IF条件。我写if (arrayi === '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;
}
发布于 2020-12-24 03:56:00
array[i] === 'a'||'e'||'i'||'o'||'u'
这就是说is arrayi === 'a‘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])) {...}
https://stackoverflow.com/questions/65430095
复制相似问题