首页 > 解决方案 > 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 的所有测试用例。我究竟做错了什么?

标签: javascript

解决方案


您需要匹配大小写的元音,因此您应该以不区分大小写的方式进行比较。

此替代方法使用匹配大小写元音的正则表达式。

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"))


推荐阅读