我有以下数组分配:
advances = if advance == 0 then [advance] else [advance, (0 - advance)]
我想知道是否有更多的咖啡脚本方式来做到这一点?
我有以下数组分配:
advances = if advance == 0 then [advance] else [advance, (0 - advance)]
我想知道是否有更多的咖啡脚本方式来做到这一点?
关于什么:
advances = [advance]
advances.push (0 - advance) if advance != 0
我认为这更具可读性。但我想这是一个品味问题。它还使用了咖啡脚本很好的 if-at-the-end 功能,我使一些语句(例如“条件数组增长”)更具可读性(至少对我而言)。
PS:我也改变了== 0
to!= 0
来避免unless
声明。它只是在阅读代码时让我感到困惑。
PPS:不要为了它而把所有东西都放在一行上(即使咖啡脚本擅长这一点)。始终考虑最易读(且性能良好)的代码。
您可能正在考虑列表推导,但我无法想象如何在这里使用它们。我相信使用 underscore.js(或其他一些提供收集实用程序的库)可以获得更好的结果:
advances = _.uniq([advance, (0 - advance)])
我认为您自己的建议非常好。它简单、清晰、纯功能。
如果您认为最小化标点符号是咖啡脚本方式的一部分,那么您可以去掉括号
advances = if advance == 0 then [advance] else [advance, 0 - advance]