I wonder if there is a better way of doing this - looks like returning out of a foreach doesn't return out of the function containing the foreach loop, which may be an expectation from C# devs.
Just wondering if there is a cleaner way of doing this:
example() { var forEachReturned; this.items.forEach(item => { if (true) { forEachReturned = true; return; } }); if (forEachReturned) { return; } // Do stuff in case forEach has not returned }
The cleaner way would be to not use .forEach
. It's almost never needed if you're using TypeScript or a modern version of JavaScript:
example() { for (let item of this.items) { if (item === 3) { return; } } // Do stuff in case forEach has not returned }
If the code inside your loop doesn't have any side-effects and you're just checking for a condition on each item, you could also use a functional approach with .some
:
example() { if (this.items.some(item => item === 3)) { return; } // Do stuff in case we have not returned }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With