javascript - javascript 元音转大写,辅音转小写
问题描述
我正在做的问题是:
编写一个 JS 程序,它接受用户的 1 个输入:一个句子(字符串)。该程序包含一个函数,该函数将字符串中的元音 (a,e,i,o,u) 转换为大写,将辅音(非元音字符)转换为小写。示例输入:string =“学习编程并开始赚钱”。预期输出 =“学习 prOgrAmmIng 并开始学习”。您的输出代码应采用 console.log("Result is ", Output variable) 格式。
我的代码是:
var sentence=prompt("Enter the sentence");
function convert(x){
var a = x.split('');
for( var i=0 ; i<a.length ; i++){
if(a[i]=="a"){
a[i] = a[i].toUpperCase();
}
else if(a[i]=="e"){
a[i] = a[i].toUpperCase();
}
else if(a[i]=="i"){
a[i] = a[i].toUpperCase();
}
else if(a[i]=="o"){
a[i] = a[i].toUpperCase();
}
else if(a[i]=="u"){
a[i] = a[i].toUpperCase();
}
else{
a[i] = a[i].toLowerCase();
}
}
var b = a.join('');
return b;
}
var output = convert(sentence);
console.log("Result is ", output);
它看起来不太好,但提供了输出。但是,它并没有通过 webapp 的所有测试用例。我究竟做错了什么?
解决方案
您需要匹配大小写的元音,因此您应该以不区分大小写的方式进行比较。
此替代方法使用匹配大小写元音的正则表达式。
let convert = (str) => {
return str.split('').reduce((a, c) => a + (/[aeiou]/i.test(c) ? c.toUpperCase() : c.toLowerCase()), "");
}
console.log("Result is", convert("Learn programming and start earning"))
推荐阅读
- javascript - 如何在 jQuery 中验证电子邮件输入?
- wordpress - 将我的 jupiter 主题标题生成器小部件添加到我的自定义帖子类型
- amazon-s3 - 如何将 commit_id 作为 lambda zip 文件名(s3 object_name)从 codepipeline 传递到 cloudformation 模板
- javascript - 如何将数据从我的 api 转换为数组我无法使用 map 函数所以我想将 cart.cartItems 转换为数组
- vue.js - PWA 使用 Vuejs 和 webpack:如何缩小服务工作者代码?
- hibernate - 使用带有休眠配置的现有 JPA 从 Grails 2.4.4 迁移到 4.0.9
- node.js - 解决 VS Code 中 proto-loader 的源映射
- postgresql - PostgreSQL pgadmin 备份 - 如何将文件复制到本地文件夹或我的计算机
- awk - sed 找到正则表达式模式然后找到下一个正则表达式模式(变量多行)并替换
- select - 如何将结果限制为仅包含 BigQuery 中的 UNION Select 语句中一个特定字段唯一的行?