Coffeescript有助于简化if子句

Coffeescript有助于简化if子句,coffeescript,Coffeescript,我有咖啡脚本中的这部分代码,我不知道如何用三元if或类似的东西来简化它 if options.tracks? @collection.add(options.tracks, {at: length+1, dest:options.dest}) else @collection.add(options, {at: length+1, dest:options.dest}) 抱歉问了个愚蠢的问题。CoffeeScript没有简单的十进制运算符,但您可以使用if,它将生成任一分支的最后一个表

我有咖啡脚本中的这部分代码,我不知道如何用三元if或类似的东西来简化它

if options.tracks?
  @collection.add(options.tracks, {at: length+1, dest:options.dest})
else
  @collection.add(options, {at: length+1, dest:options.dest})

抱歉问了个愚蠢的问题。

CoffeeScript没有简单的十进制运算符,但您可以使用if,它将生成任一分支的最后一个表达式

@collection.add((if options.tracks then options.tracks else options), 
  {at: length+1, dest:options.dest})
话虽如此。我不会那样写的,因为我觉得它有太多的视觉噪音,而且很难阅读。最好

tracks = if options.tracks then options.tracks else options
@collection.add(tracks, {at: length+1, dest:options.dest})
甚至更好

tracks = options.tracks || options
@collection.add(tracks, {at: length+1, dest:options.dest})
使用将产生与编写代码相同的行为:

@collection.add(options.tracks ? options, {at: length + 1, dest: options.dest})
我个人会去掉一些括号,也许会在第一个参数中使用一个单独的变量。。。但这实际上更多的是个人偏好:

tracks = options.tracks ? options
@collection.add tracks, at: length + 1, dest: options.dest