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.