求助:修改JavaScript函数实现字符串元音字符连续输出
解决JavaScript提取元音并连续输出的问题
原代码的问题分析
你的原函数每次匹配到元音就调用console.log,导致每个元音单独换行;同时else分支输出空字符串,会产生大量无效空行。要实现连续输出所有元音,需要先收集所有符合条件的字符,最后统一打印。
修改后的原函数版本
function vowelsOnly(str) { const vowels = ['a','e','i','o','u']; let result = ''; for (let i = 0; i < str.length; i++) { // 用includes替代indexOf,可读性更好 if (vowels.includes(str[i])) { result += str[i]; } } // 最后一次性输出所有收集到的元音 console.log(result); } // 测试输入 vowelsOnly("welcome to my world"); // 输出:eoeoo
优化你的补充代码
你提供的补充代码已经可以正常运行,但可以简化逻辑——不需要判断长度,直接返回结果即可,因为当没有元音时,join('')会自然返回空字符串:
const getVowels = str => str.split('').filter(char => "aeiou".includes(char)).join(''); // 测试用例 console.log(getVowels("welcome to my world")); // eoeoo console.log(getVowels("qqwwrrttppssddaeu")); // aeu console.log(getVowels("xyz")); // 输出空字符串
内容的提问来源于stack exchange,提问作者Jon Beckner
相关产品推荐
相关产品推荐

