突破 Array.forEach
Array.forEach() 方法是迭代数组的强大工具,但它缺乏提前停止迭代过程的能力。当您需要根据特定条件短路操作时,这可能会成为一个障碍。
考虑以下代码:
[1, 2, 3].forEach(function(el) { if (el === 1) break; });
此代码尝试在以下情况下立即停止迭代:遇到值为 1 的元素。但是,break 语句在 forEach 回调中没有任何效果。
要实现所需的行为,您必须抛出一个异常来中断 forEach 循环的执行。下面是一个示例:
var BreakException = {}; try { [1, 2, 3].forEach(function(el) { console.log(el); if (el === 2) throw BreakException; }); } catch (e) { if (e !== BreakException) throw e; }
在此代码中,创建了一个名为 BreakException 的自定义异常。当遇到值为2的元素时,抛出异常,导致循环退出。 catch 块确保只有抛出 BreakException 时循环执行才会停止,从而防止其他异常导致程序崩溃。
通过使用这种方法,您可以在 Array.forEach 迭代中模拟 break 语句的功能,允许您在满足特定条件时终止循环。
以上是如何尽早停止 `Array.forEach()`?的详细内容。更多信息请关注PHP中文网其他相关文章!