我想在我的forEach循環中應用一箇中斷。我不認爲有可能在forEach中實際使用中斷(不是100%爲什麼,我剛剛閱讀了它並且相信它)。我怎樣才能擺脫forEach或重新構造我的功能?
這裏是我的代碼:
function translate(wordString){
var vowel = 'aeiou';
var wordArr = wordString.split(' ');
var wordArray = [];
wordArr.forEach(function(word){
if(vowel.search(word.charAt(0))!=-1){
wordArray.push(word + 'ay');
//WOULD LIKE TO PUT BREAK HERE;
// break;
}
else{
index = 0;
}
for(var i =0; i< word.length; i++){
if(vowel.search(word.charAt(i)) !=-1){
if(word.charAt(i) != 'u' || (word.charAt(i) == 'u' && word.charAt(i - 1) != 'q')){
index = i;
break;
}
}
}
wordArray.push(word.substring(index, word.length) + word.substring(0, index) + 'ay');
});
return wordArray.join(' ');
}
translate('apple');
當我通過以元音開頭的單詞時,我得到一個重複的字,我想只是有迴路斷線每當我的第一個if語句裏面步驟。這可能嗎?
這些是我需要通過的最後兩項測試,我認爲如果我能以某種方式停止指定位置的循環,它們將被解決。
這裏是一個repl.it鏈接http://repl.it/Nv6
只是FYI,它會暫停'.forEach()'當前迭代中的回調,但它不會像'for for'循環中的'break'那樣暫停迭代。 –
如果你想結束所有的迭代,你可以拋出一個類型異常並忽略它。類似'function Foo(){}'和'throw new Foo();'並嘗試捕獲(如果foo實例){} – Eric