如何突破forEach或重构我的功能?

时间:2014-01-17 01:46:26

标签: javascript

我正在尝试在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 个答案:

答案 0 :(得分:3)

当您想要休息时,请使用.some()代替.forEach()return true

.every()return false可以打破。

答案 1 :(得分:0)

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

'return'对我有用。