2017-07-25 108 views
1

如何打破_.each()循環? 嘗試使用_.every(),它僅在數據中循環一次。Break _.each循環

樣品的編號:

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

輸出: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; 
     } 
    }); 

輸出:1假

+4

真的,如果你可能需要提前回來,你不應該使用foreach。在這種情況下,只需使用常規的'for'。 – Carcigenicate

+2

聽起來像你應該只使用Array的'some()' – epascarello

+0

你究竟在做什麼?返回所有數字是否小於三,或...? –

回答

2

不能從功能forEach循環逸出。

請考慮使用常規for循環代替。

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

事實上,你可以...... 'var break = false; _each([...],(num)=> { if(break)return [...] break = true; });' – Bellian

+0

@Bellian雖然它仍然在循環中然後有額外的,如果檢查休息..... – Neal

+0

確實我不能建議這樣做,但它是可能的。只是爲了完成(沒有downvote btw ..) – Bellian