在 JavaScript forEach() 中使用 Continue
JavaScript 的 forEach()
function 对数组中的每个元素执行一个函数。 然而,由于 forEach()
是一个函数而不是一个循环,如果你尝试使用 JavaScript 会出错 continue
:
[1, 2, 3, 4, 5].forEach(v => {
if (v % 2 !== 0) {
// SyntaxError: Illegal continue statement: no surrounding iteration statement
continue;
}
});
我们建议使用 for/of
循环遍历数组 ,除非你有充分的理由不这样做。但是,如果您发现自己陷入了 forEach()
并且需要跳到下一个迭代,这里有两个解决方法。
1.使用 return
出于实际目的, return
在一个 forEach()
回调相当于 continue
在一个常规的 for
环形。
当你 return
,你跳过其余的 forEach()
回调和 JavaScript 继续循环的下一次迭代。
// Prints "2, 4"
[1, 2, 3, 4, 5].forEach(v => {
if (v % 2 !== 0) {
return;
}
console.log(v);
});
使用 return
是最简单的方法,但它并不是函数式编程模式最惯用的用法。 使用 if
和 return
通常意味着你最好只使用 for
环形。
2.过滤掉不需要的值
而不是考虑如何跳过 forEach()
当某种情况发生时,函数式编程鼓励你转而思考如何 filter()
调用前输出值 forEach()
,使用 if
在一个 forEach()
回调使函数式编程纯粹主义者畏缩,因为您错过了使用函数式模式的关键好处: 组合 。
而不是使用 if
声明,只是 filter()
去掉你不想要的值 forEach()
执行。
// Prints "2, 4"
[1, 2, 3, 4, 5].filter(v => v % 2 === 0).forEach(v => {
console.log(v);
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论