我在Coffee Script中有这部分代码,我无法弄清楚如何用这样的三元数来简化它...
if options.tracks?
@collection.add(options.tracks, {at: length+1, dest:options.dest})
else
@collection.add(options, {at: length+1, dest:options.dest})
抱歉愚蠢的问题..
答案 0 :(得分:1)
CoffeeScript没有简单的tenary运算符,但你可以使用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})
答案 1 :(得分:1)
使用existential operator将产生与您编码相同的行为:
@collection.add(options.tracks ? options, {at: length + 1, dest: options.dest})
我个人会摆脱一些parens / braces,也许会为第一个参数使用一个单独的变量......但这更多是关于个人偏好:
tracks = options.tracks ? options
@collection.add tracks, at: length + 1, dest: options.dest