You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript forEach循环中如何实现continue跳过当前迭代

问题原因

forEach是数组原型上的遍历方法,它接收的参数是独立的回调函数,本身不属于JavaScript语法层面的迭代语句(比如for、for...of、while这类),回调内部不存在迭代语句上下文,因此直接写continue会抛出如下语法错误:

SyntaxError[ ... ]: Illegal continue statement: no surrounding iteration statement

这个报错和传入的是普通function函数还是箭头函数无关,只要在forEach的回调里直接使用continue就会触发。

forEach内实现continue等效效果的方案

除了用反向条件包裹待执行逻辑的写法外,最直接的实现方式是在回调函数内使用return提前终止当前次回调执行:return语句之后的本次回调逻辑不会运行,遍历会直接进入下一个元素的处理,效果和continue完全一致。

示例代码:

const values = [1, 2, 3, 4, 5];
values.forEach((value) => {
    if (value === 3) { 
        return; // 跳过value=3时的后续逻辑,等效continue
    }
    console.log(value);
})

运行输出:

1
2
4
5
补充建议

如果遍历过程中需要频繁使用continue、break这类流程控制关键字,更推荐直接使用原生支持流程控制的循环语法,比如for...of、普通for循环,写法更符合语义,也不会出现语法兼容问题:

const values = [1, 2, 3, 4, 5];
for (const value of values) {
    if (value === 3) { continue; }
    console.log(value);
}

注意:forEach回调里的return仅能实现continue的效果,无法实现break终止整个遍历的需求,如果需要中途终止遍历,建议换用原生循环,或者借助some/every方法的返回值特性实现。

内容的提问来源于stack exchange,提问作者Chris Collett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 11:09:13