How to stop forEach() method in JavaScript ?

Stopping a forEach() loop seems almost like an impossible task but here are a few tricks by which we might do it.
Sample example using forEach():
var sum = 0;
var number = [90, 4, 22, 48];
number.forEach(myFunction);
function myFunction(item) {
sum += item;
}
console.log(sum);
Tricks to stop forEach() loop:
Method 1:The following method demonstrates using a try-catch block. The following code demonstrates surrounding the thing with a try-catch block and throwing an exception when forEach loop break.
Example: This example uses the above-approach.
Javascript
var animals=["pig", "lion", "boar", "rabbit"]; try { animals.forEach(myFunction); function myFunction(item) { // Condition for breaking the loop if(item.localeCompare("boar") == 0) /* skips rest of the statements in the function and goes to the catch block */ throw new Exception("Time to end the loop"); console.log(item); } } catch(e) { console.log("Loop has ended"); } |
Output:
pig lion Loop has ended
Method 2: This method does not actually break from the forEach() loop but thinks of it as a continuous statement against all other elements i.e. it skips all other elements after the element that satisfies the given condition.
Example: This example shows the use of the above-approach.
Javascript
var ary = [90, 87, 45, 99]; ary.forEach(function loop(item) { // This statement acts like a continue // statement for the remaining elements // when the condition is satisfied if(loop.stop){ return;} // Prints the element to the console console.log(item); // This statement acts like a condition // and prevents the execution of the // loop for the remaining elements if(item == 87) { loop.stop = true; } }); |
Output:
90 87



