更多coffeescript数组赋值

时间:2012-12-14 14:29:05

标签: coffeescript

我有以下数组赋值:

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

我想知道是否有更多的coffeescript方式吗?

3 个答案:

答案 0 :(得分:1)

怎么样:

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

我认为这更具可读性。但我想这是一个品味问题。 它还使用了咖啡脚本的非常好的if-to-the-end功能,我做了一些声明,比如这个“条件数组增长”更具可读性(至少对我来说)。

PS:我还将== 0更改为!= 0以避免unless语句。在阅读代码时,这只会让我感到困惑。

PPS:不要仅仅为了它而将所有东西都放在一条线上(即使咖啡脚本很擅长)。始终考虑最易读(性能最好)的代码。

答案 1 :(得分:0)

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

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

http://underscorejs.org/#uniq

答案 2 :(得分:0)

我认为你自己的建议完全没问题。它简单,清晰,功能纯正。

如果您认为最小化标点符号是coffeescript方式的一部分,那么您可以删除括号

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