Poznajemy sposoby, w jakie możemy uzyskać efekt break w pętli-niepętli forEach. Do dzieła!
Pierwszy sposób: użycie every zamiast forEach:
let arr2 = [1,2,3, -1, 4];
arr2.every(function(v){
if(v >= 0){
console.log(v);
return true;
}
return false;
});
//1
//2
//3
Drugi sposób – próba modyfikacji tablicy, która kończy się breakiem:
let arr2 = [1,2,3, -1, 4];
arr2.forEach((v, idx, arr) => {
if(v < 0){
arr.length = idx + 1;
} else {
console.log(v);
}
});
//1
//2
//3
Sposób trzeci – wyrzucenie błędu:
let arr2 = [1,2,3, -1, 4];
arr2.forEach((v, idx, arr) => {
if(v < 0)
throw new Error("Number is too low!");
console.log(v);
});
//1
//2
//3
//Number is too low
W zależności od tego jak opleciemy pętlę blokiem try-catch (czy cały forEach czy funkcję callback) możemy uzyskać tak break jak i continue.