簡體   English   中英

javascript 元音轉大寫,輔音轉小寫

[英]javascript vowels to uppercase and consonants to lowercase

我正在做的問題是:

編寫一個 JS 程序,它接受用戶的 1 個輸入:一個句子(字符串)。 該程序包含一個函數,可將字符串中的元音 (a,e,i,o,u) 轉換為大寫,並將輔音(非元音字符)轉換為小寫。 示例輸入:string = "學習編程並開始賺錢"。 預期輸出 =“學習計划並開始學習”。 您的輸出代碼的格式應為 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"))

您的代碼對於最初大寫的元音失敗。 例如: convert("HI")返回 "hi"

您應該先將輸入轉換為小寫:

convert("HI".toLowerCase())返回正確的 "hI"

 function vowelsCAP(str){ var str; var res=str.split(""); for(var i=0;i<res.length;i++){ if(res[i]=="A"|| res[i]=="E" || res[i]=="I" || res[i]=="O" || res[i]=="U"){ res[i]=res[i]; } else if(res[i]=="a"|| res[i]=="e" || res[i]=="i" || res[i]=="o" || res[i]=="u"){ res[i] = res[i].toUpperCase();} else{ res[i] = res[i].toLowerCase();} } var out = res.join(""); return out; } console.log(vowelsCAP("HI Bro, Learn programming and start earning"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM