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

如何将数组字符串中的元音字母转为大写?求代码修正方案

问题解决:将字符串中的元音字母转为大写

原代码的问题

  • 使用for...in遍历数组时,item获取的是数组索引而非元素,导致处理对象完全错误。
  • 变量名拼写错误:vogals应为定义好的vowels。
  • 未遍历字符串的单个字符,无法实现逐个元音字母的转换逻辑。

方案一:字符遍历处理

let arr = ['1 abcde', '2 abcde', '3 abcde'];
const vowels = new Set(['a','e','i','o','u']);

const result = arr.map(str => {
  return str.split('').map(char => {
    return vowels.has(char) ? char.toUpperCase() : char;
  }).join('');
});

console.log(result); // 输出: ['1 AbCdE', '2 AbCdE', '3 AbCdE']

逻辑说明:

  • 用map遍历数组每个字符串,避开for...in的索引陷阱。
  • 将字符串拆分为字符数组,逐个判断是否为元音(用Set存储元音可提升查找效率)。
  • 元音字母转大写,其他字符保持原样,最后拼接回完整字符串。

方案二:正则表达式简化实现

let arr = ['1 abcde', '2 abcde', '3 abcde'];
const result = arr.map(str => str.replace(/[aeiou]/g, match => match.toUpperCase()));

console.log(result); // 输出预期结果

逻辑说明:

  • 正则/[aeiou]/g全局匹配所有小写元音字母。
  • 替换回调将匹配到的元音转为大写,一行代码完成转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:17:35