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

如何用for循环统计数组元素中的元音与辅音数量?

问题排查与修正代码

原代码存在以下关键问题,导致无法正确统计每个单词的元音和辅音数量:

  • 遍历对象错误:直接将整个水果字符串与单个元音字符比较,未遍历每个单词的字符;for...in遍历数组虽可行,但更适合用for...of直接获取数组元素。
  • 计数未赋值:vowels + 1和consonants + 1仅做数值计算,未将结果赋值回变量,无法实现计数累加,需改为vowels++或vowels += 1。
  • 未处理大小写:仅检查小写元音,会漏掉单词中的大写元音(如"Apple"的首字母A)。
  • 全局计数未重置:全局的vowels和consonants会累计所有单词的数量,无法实现每个单词单独统计的需求。
  • 未输出统计结果:仅打印单词,未将统计的元音、辅音数量输出到控制台。

修正后的代码

const fruits = ["Apple", "Orange", "Pear", "Peach", "Strawberry", "Cherry", "Acai"];

// 遍历每个水果单词
for (const fruit of fruits) {
    let vowels = 0;
    let consonants = 0;
    // 将单词转为小写,统一判断逻辑
    const lowerFruit = fruit.toLowerCase();
    
    // 遍历当前单词的每个字符
    for (const char of lowerFruit) {
        // 判断是否为元音(a/e/i/o/u)
        if (["a", "e", "i", "o", "u"].includes(char)) {
            vowels++;
        } else if (/[a-z]/.test(char)) { // 仅统计英文字母中的辅音,排除特殊字符
            consonants++;
        }
    }
    
    // 打印当前单词的统计结果
    console.log(`${fruit}: 元音${vowels}个,辅音${consonants}个`);
}

运行结果

[Running] node "d:\coding.js"
Apple: 元音2个,辅音3个
Orange: 元音3个,辅音3个
Pear: 元音2个,辅音2个
Peach: 元音2个,辅音3个
Strawberry: 元音2个,辅音7个
Cherry: 元音1个,辅音4个
Acai: 元音3个,辅音1个

[Done] exited with code=0 in 0.132 seconds

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:53