我的代码中有这一行:
de: (_.max(data, (product) -> product.prices.de )).price.de
我首先要检查是否product.prices
已定义,如果已定义则返回product.prices.de
否则返回0。在javascript中,我会这样写:
angular.isDefined(product.prices) ? product.prices.de : 0
但是,当我在coffeescript中尝试相同的操作时,coillinter不接受它。有什么提示吗?在使用查询运算符时,coffescript和javascript之间有区别吗?
编辑:
我会写
de: (_.max(data, (product) -> product.prices?.de )).prices.de
但是在这种情况下,如果product.prices
不存在,该函数将返回null而不是0
CoffeeScript中的三元运算符只是一个if条件,因为CoffeeScript中的所有内容都是一个表达式。因此,以下内容:
condition ? something : somethingElse
成为:
if condition then something else somethingElse
请注意,就您而言,您不会写:
if product.prices then product.prices.de else 0
您可能想要:
product.prices?.de or 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句