[英]Iteration of string in for loop doesn't work as expected
作為一個初學者,我渴望提高我的Java語言技巧。 因此,我要解決在rmion.com上發現的一些Javascript挑戰。 我被卡在#4上 (我的意思確實是卡住了,在將它帶到stackoverflow之前,我已經盡力了)。
指令是: 編寫一個函數translate(),它將文本轉換為“rövarspråket”。 也就是說,將每個輔音加倍,並在它們之間放置一個“ o”。 例如,translate(“ this is fun”)應該返回字符串“ tothohisos isos fofunon”。
到目前為止,這是我想出的:
var vowel = 'a,e,i,o,u';
newString = '';
function vowelCheck(character) {
for (var i = 0; i < character.length; i++) {
if (character !== vowel[i]) {
return newString + ((character[i]+character[i])+'o');
} else {
return newString + (character[i]+'o');
}
}
}
vowelCheck('abc');
我需要為每個應返回的字符abc運行循環:
a,o,b,b,o,c,o
但是,由於該函數返回的字符串長度等於該函數給定參數.length的值,因此它將停止運行循環。
vowelCheck("abc");
// returns "aao"
我編寫的使vowelCheck(“ abc”)中每個字母運行功能的代碼是否可行? ?
我沒有查看rmion的給定解決方案,因為我試圖查看我要去哪里。 如果我寫的東西不可能,那么任何提示都會很棒^^(我不是在尋找免費贈品)
主要問題是此行:
if (character !== vowel[i])
它什么都沒做。
您可以做的是使用數組保存元音:
var vowels = ['a', 'e', 'i', 'o', 'u'];
然后檢查字符是否在該數組中:
// if vowels does NOT contain the character...
if (vowels.indexOf(character[i]) === -1)
最后:
return newString + ((character[i]+character[i])+'o');
不會返回完整的字符串,只會返回字符串的第一部分,而且我認為它不會生成您想要的輸出。
newString += ((character[i] + 'o' + character[i]));
將繼續將子字符串添加到輸出字符串,然后可以在函數末尾返回。
如果需要, 這是一個工作示例,您可以參考 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.