2017-04-06 82 views
6

我正在查看Underscore和Lodash庫之間的差異,我遇到了一個有關_.each/_.forEach的問題。「繼續」在Lodash for each

在下劃線中,_.each函數不能擺脫循環。當使用return false時,它只能用作「continue」語句。 (這是我的情況下的預期功能)=它強制循環的下一次迭代發生,跳過其間的任何代碼。

另一方面,在Lodash中,返回false告訴_.forEach()這個迭代將是最後一個。有沒有辦法讓Lodash中的「繼續」行爲也起作用?

謝謝。

回答

14

另一方面,在Lodash中,返回false告訴_.forEach()這個迭代將是最後一次。有沒有辦法讓Lodash中的「繼續」行爲也起作用?

你可以返回true,或只是一個單一的return(返回undefined),這個值是從needed false不同的「通過明確返回false提前退出迭代。」

_.forEach([1, 2, 3, 4, 5], function (a) { 
 
    if (a < 3) return;  // continue 
 
    console.log(a); 
 
    if (a > 3) return false; // break 
 
    // return undefined;  // continue, undefined is the standard value of ending a function 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>