38

I was looking over the differences between the Underscore and Lodash libraries and I came upon one issue regarding _.each / _.forEach.

In Underscore, the _.each function cannot break out of the looping. When using return false, it only worked as a "continue" statement. (which was the intended functionality in my case) = It forces the next iteration of the loop to take place, skipping any code in between.

In Lodash, on the other hand, returning false tells _.forEach() that this iteration will be the last. Is there a way to make the "continue" behavior also functional in Lodash?

Thanks.

IceWhisper
  • 807
  • 1
  • 11
  • 20

1 Answers1

73

In Lodash, on the other hand, returning false tells _.forEach() that this iteration will be the last. Is there a way to make the "continue" behavior also functional in Lodash?

You could return true, or just a single return (which returns undefined), this value is different from needed false for "exit iteration early by explicitly returning 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>
Nina Scholz
  • 376,160
  • 25
  • 347
  • 392