参考:
http://stackoverflow.com/questions/2641347/how-to-short-circuit-array-foreach-like-calling-break
上のサイトの情報で、ユニークな方法がありました。
var ar = [ "apple", "lemon", "soda" ];
var breakException = {};
try {
ar.forEach(i => {
if (i === "lemon") {
// breakしたい!
throw breakException;
}
});
} catch (e) {
if (e !== breakException) throw e
}
例外がスローされると、関数の実行が停止するのを応用して、
「Breakしたい!」と思ったら、強制的に例外を出しちゃうという方法です!
でも、本当の例外が発生してしまったときのために、
catch
内でbreakException
かどうかを判断しています。
try-catch
文がこんな方法に応用できるなんて面白いです!