我知道这是一个基本的问题,但我试图通过一个初学者的编码问题,我坚持为什么这段代码不工作。
这是我到目前为止所拥有的:
const myString = "Testing for vowels";
const vowels = ["a", "e", "i", "o", "u", "y"];
function countVowels(myString) {
let count = 0;
if (vowels.includes(myString)) {
count++;
}
return count
}
const result = countVowels(myString);
console.log(result);
当它注销时,它只是保持0
。很明显我漏掉了什么,但我不确定是什么。我已经设置了元音是什么,我想我是在问,如果我在数组中设置的元音在我的字符串中,增加计数,但它只是给我0
。我知道这很明显,但我卡住了。
我尝试了一个for
循环,然后我想它可能需要一个if
语句,现在我在一个函数中有了它。我还没能得到答案,所以我不认为我正确地告诉代码元音是什么,但我不知道如何做到这一点。
3条答案
按热度按时间fzwojiic1#
你必须使用for循环来检查每个字符是否包含在元音数组中,如下所示:
7rfyedvj2#
一个简单的大小写-insensitive andglobally flagged regex like...
/[aeiou]/gi
...它在character set中列出了所有元音,通过match
应用,已经完成了这项工作。后一个操作返回数组或null
值。因此,像这样的表达…...就是我们需要的
为了防止在
null
匹配的情况下出现TypeError
,其中无法访问length
属性,但仍然希望得到有意义的结果,可以同时使用Optional Chaining Operator /?.
和Nullish Coalescing Operator /??
。示例代码…
countVowels
的实现就像这样简单。或者说...
。。。后者可以像下面这样测试。。
aij0ehis3#