You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用for循环统计字符串元音数量的函数返回值异常排查

问题分析与修复

你的代码存在两个核心问题,导致无论输入什么字符串都返回0:

  1. return语句位置错误
    你把return counter写在了for循环的内部,这会让循环只执行第一次迭代就直接返回初始值0,完全没机会遍历整个字符串。必须把return移到循环外部,等所有字符遍历完成后再返回统计结果。

  2. 判断对象错误
    循环变量i是数字类型的索引值,你却拿它和'a'、'e'这类字符做比较,这种判断永远不会成立。应该用string[i]来获取当前索引对应的字符串字符,再进行元音判断。

额外补充一个优化点:当前代码仅能统计小写元音,若要兼容大写元音,可以先把字符转为小写(或大写)后再判断,避免遗漏。

修复后的代码

function vowels(string) {
    var counter = 0;
    for (let i = 0; i < string.length; i++) {
        const char = string[i].toLowerCase();
        if (char === 'a' || char === 'e' || char === 'i' || char === 'o' || char === 'u') {
            counter++;
        }
    }
    return counter;
}

内容的提问来源于stack exchange,提问作者hotpocket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:10:20