我正在尝试在forEach循环中应用中断。我不认为在forEach中实际使用中断是不可能的(不是100%为什么,我刚读过它并且相信它)。
这是我的代码:
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
答案 0 :(得分:3)
当您想要休息时,请使用.some()
代替.forEach()
和return true
。
或.every()
和return false
可以打破。
答案 1 :(得分:0)
//...
//WOULD LIKE TO PUT BREAK HERE;
// break;
return;
'return'对我有用。