Подтвердить что ты не робот

"Продолжить" в Лодаше для каждого

Я просматривал различия между библиотеками Underscore и Lodash, и я столкнулся с одной проблемой относительно _.each/_.forEach.

В Underscore функция _.each не может вырваться из цикла. При использовании return false, он работал только как оператор continue. (это была назначенная функциональность в моем случае) = Он заставляет следующую итерацию цикла проходить, пропуская любой код между ними.

В Lodash, с другой стороны, возврат false указывает _.forEach(), что эта итерация будет последней. Есть ли способ заставить поведение "продолжить" также функционировать в Lodash?

Благодарю.

4b9b3361

Ответ 1

В Lodash, с другой стороны, возврат false указывает _.forEach(), что эта итерация будет последней. Есть ли способ заставить поведение "продолжить" также функционировать в Lodash?

Вы можете вернуть true или просто один return (который возвращает undefined), это значение отличается от необходимого 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>