[英]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.