在 JavaScript forEach() 中使用 Continue

发布于 2022-08-16 12:30:35 字数 1721 浏览 241 评论 0

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 是最简单的方法,但它并不是函数式编程模式最惯用的用法。 使用 ifreturn 通常意味着你最好只使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
23 人气
更多

推荐作者

胡图图

文章 0 评论 0

zt006

文章 0 评论 0

z祗昰~

文章 0 评论 0

冰葑

文章 0 评论 0

野の

文章 0 评论 0

天空

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文