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

求Javascript元音统计代码通俗讲解及修改为打印元音的实现方法

原代码逐行讲解
const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];

function countVowels(sentence) {
  let counts = 0;
  for(let i = 0; i < vowels.length; i++) {
    if(vowels.includes(sentence[i])) {
      counts++;
    }
  }
  return console.log(counts);
}

countVowels('Hello World');
countVowels('AaEeIiOoUu');
countVowels('aaaaa');

逐行解释:

  • 第1行:const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
    声明了一个常量数组,里面存了所有大小写的英文元音字母,作为后续判断的基准库。
  • 第2行:function countVowels(sentence) {
    声明一个名为countVowels的自定义函数,它接收一个参数sentence,也就是你要处理的目标字符串。
  • 第3行:let counts = 0;
    函数内部初始化一个计数变量,初始值为0,用来累加统计到的元音个数。
  • 第4行:for(let i = 0; i < vowels.length; i++) {
    开启for循环,索引i从0开始,每轮循环i自增1,注意这里原代码有逻辑错误:循环终止条件用了元音数组的长度10,也就是说如果传入的字符串长度超过10,超出部分的字符完全不会被检查。
  • 第5行:if(vowels.includes(sentence[i])) {
    判断当前循环到的目标字符串第i位字符,是否存在于元音数组中,也就是判断这个字符是不是元音。
  • 第6行:counts++;
    如果上面的判断为真(当前字符是元音),就把计数变量加1。
  • 第7、8行:分别是if语句和for循环的闭合花括号,作用是标识对应代码块的结束范围。
  • 第9行:return console.log(counts);
    函数执行结束前,把统计到的元音总数打印到控制台,然后终止函数执行。
  • 最后3行:分别调用3次countVowels函数,传入三个不同的测试字符串,验证功能。
调整后实现方案(输出所有元音字母)

我们只需要修改两处核心逻辑:1、把计数变量换成存储元音的数组;2、修复原循环长度的错误,改成按传入字符串的长度循环,找到元音就存到数组里最后打印即可。
修改后的完整代码如下:

const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];

function getVowels(sentence) {
  // 把原来的计数变量改成空数组,用来存找到的元音
  let foundVowels = [];
  // 循环长度改成目标字符串的长度,保证每个字符都被检查到
  for(let i = 0; i < sentence.length; i++) {
    const currentChar = sentence[i];
    if(vowels.includes(currentChar)) {
      // 是元音就推入数组
      foundVowels.push(currentChar);
    }
  }
  // 打印所有找到的元音,也可以根据需要改成返回这个数组
  console.log(foundVowels);
  // 如果想要输出字符串形式而非数组,把上面一行替换成:console.log(foundVowels.join(''))
}

// 测试调用
getVowels('Hello World'); // 输出 ['e', 'o', 'o'],字符串形式输出为 eoo
getVowels('AaEeIiOoUu'); // 输出 ['A','a','E','e','I','i','O','o','U','u']
getVowels('aaaaa'); // 输出 ['a','a','a','a','a']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 11:06:02