Coffeescript: 如何在forEach循环中跳出?

7

可能是重复问题:
Javascript数组.forEach如何中断?

假设我有一个forEach循环,如果X为真,怎样才能跳出该循环呢?

例如:

user.forEach (x,i) ->

                    if x.status == "available"
                        -- I want to break here - 

谢谢


1
这个问题实际上在这里已经讨论过了:https://dev59.com/EXE85IYBdhLWcg3wvGAR - Charlie Martin
1个回答

12

基本上不要这样做。 forEach 应该基本上是"函数式"的。你可以通过抛出异常来打破它,但是异常应该用于"异常"情况,而不是流程控制。

如果你想要打破循环,你不是想要一个函数式的形式,你是指迭代。使用一个 for 循环。


或者,你可以使用类似于jQuery的$.each这样的方法,如果返回false,它会中断循环。 - Trevor Burnham
我同意这个观点,但我不确定“functional”这个词是否正确,即使是在引号中;forEach的整个重点就是创建副作用。 - user24359
Isaac,将forEach与例如map进行比较,其中循环体作为闭包。 - Charlie Martin
当然,你可以通过修改封闭变量来使用map创建副作用,但这是非函数式的使用方式。 - user24359
你可以在forEach中执行没有副作用的操作。 - Charlie Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接