0

我有以下数组分配:

advances = if advance == 0 then [advance] else [advance, (0 - advance)]

我想知道是否有更多的咖啡脚本方式来做到这一点?

4

3 回答 3

1

关于什么:

advances = [advance]
advances.push (0 - advance) if advance != 0

我认为这更具可读性。但我想这是一个品味问题。它还使用了咖啡脚本很好的 if-at-the-end 功能,我使一些语句(例如“条件数组增长”)更具可读性(至少对我而言)。

PS:我也改变了== 0to!= 0来避免unless声明。它只是在阅读代码时让我感到困惑。

PPS:不要为了它而把所有东西都放在一行上(即使咖啡脚本擅长这一点)。始终考虑最易读(且性能良好)的代码。

于 2012-12-14T15:32:45.923 回答
0

您可能正在考虑列表推导,但我无法想象如何在这里使用它们。我相信使用 underscore.js(或其他一些提供收集实用程序的库)可以获得更好的结果:

advances = _.uniq([advance, (0 - advance)])

http://underscorejs.org/#uniq

于 2012-12-14T15:01:49.603 回答
0

我认为您自己的建议非常好。它简单、清晰、纯功能。

如果您认为最小化标点符号是咖啡脚本方式的一部分,那么您可以去掉括号

advances = if advance == 0 then [advance] else [advance, 0 - advance]
于 2012-12-14T19:00:43.850 回答