2017-07-25 2 views
1

Wie _ _ach() Schleife brechen? Versucht mit _.every(), es durchläuft die Daten nur einmal.Break _.each Schleife

Beispielcode:

_.each([1,2,3,4,5],function(num){ 
     if(num < 3) 
      console.log(num) 
     else{ 
      console.log(num); 
      return false; 
     } 
    }); 

Output: 1 2 3 4 5

_.every([1,2,3,4,5],function(num){ 
     if(num < 3) 
      console.log(num) 
     else{ 
      console.log(num); 
      return false; 
     } 
    }); 

Output: 1 falsch

+4

Wirklich, Sie sollten keine foreach verwenden, wenn Sie möglicherweise früh zurückkommen müssen. Verwenden Sie einfach ein normales 'for' in diesem Fall. – Carcigenicate

+2

Klingt, als ob du einfach Array's 'some()' – epascarello

+0

verwenden solltest. Was versuchst du eigentlich zu tun? Zurückgeben, ob alle Zahlen kleiner als drei sind oder ...? –

Antwort

2

Sie können nicht von der funktionellen forEach Schleife entkommen.

Verwenden Sie stattdessen eine normale for-Schleife.

const arr = [1,2,3,4,5]; 

for (let i = 0; i < arr.length; ++i) { 
    const num = arr[i]; 
    if(num < 3) { 
     console.log(num) 
    } else { 
     console.log('break out'); 
     break; 
    } 
} 
+1

In der Tat können Sie .. ' var break = false; _.each ([...], (num) => { if (Pause) return [...] Pause = true; }); ' – Bellian

+0

@Bellian es immer noch in der Schleife obwohl sein Und dann noch ein Extra, wenn es auf Pause geht ... – Neal

+0

In der Tat kann ich es nicht empfehlen, aber es ist möglich. Nur zur Vervollständigung (nicht downvote btw ..) – Bellian