能否用String.includes()与for...of循环统计元音?现有代码计数始终为0
问题修复方案
你的代码有两个关键问题导致计数始终为0:
- 变量名拼写错误:
voweslCount多打了一个l,正确命名应为vowelsCount - includes方法逻辑误用:当前代码是判断整个字符串
str是否包含连续的'aeiou'字符串,而非判断遍历到的单个字符char是否为元音。正确逻辑是检查当前字符是否存在于元音集合中。
修复后的代码:
const vowelCount = str => { let vowelsCount = 0; for (let char of str){ if ('aeiou'.includes(char)) vowelsCount++; } return vowelsCount; }
如果需要兼容大小写元音(比如'A'、'E'这类大写形式),可以在遍历前统一将字符串转为小写:
const vowelCount = str => { let vowelsCount = 0; const lowerStr = str.toLowerCase(); for (let char of lowerStr){ if ('aeiou'.includes(char)) vowelsCount++; } return vowelsCount; }
内容的提问来源于stack exchange,提问作者Ikram Wani
相关产品推荐
相关产品推荐

