Как я могу вырваться из forEach или повторно структурировать свою функцию?

Я пытаюсь применить перерыв в моем 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

http://repl.it/Nv6

2 ответа

Используйте .some() вместо .forEach() и return true когда хотите разбить.

Или .every(), и return false чтобы сломать.


//...
 //WOULD LIKE TO PUT BREAK HERE;
 // break;
 return;

"Возвращение" работает для меня.

licensed under cc by-sa 3.0 with attribution.