[英]Coffeescript idiom equivalent to Python's for/else?
我正在寻找一种优化循环的方式,而不使用布尔条件来检查如果循环正常终止而不会中断,是否执行某些操作。 在python中,我会这样写:
for x in lst:
if cond(x):
do_stuff_with(x)
break
else:
do_other_stuff()
在Coffeescript中,我能想到的最好的方法是执行以下操作:
found = false
for x in lst
if cond x
found = true
do_stuff_with x
break
if not found
do_other_stuff()
有这种情况的Coffeescript成语吗?
对于此特定用法,可以使用EcmaScript 6 .find
函数。 如果要与不支持EcmaScript 6的浏览器兼容,Underscore.js中也存在类似的方法。
result = lst.find cond
if result?
do_stuff_with result
else
do_other_stuff()
但是,无法直接替换Python中的for else
循环。 通常,您需要声明一个布尔值来存储状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.