forEach pattern
by Artem
JavaScript
'use strict';
const data = [1, 2, 3, 4, 5];
function log(e, i, a) {
if (e === 3) throw foreach.break;
console.log(e);
}
function foreach(a, f, t) {
try {
a.forEach(f)
} catch(e) {
if (e === foreach.break) return;
throw e;
}
}
foreach.break = new Error('StopIteration');
foreach(data, log);