我有一个要移植到咖啡脚本的 RPC 库。它必须做的一件事是重新排序函数调用参数以确保它们的顺序正确。为此,我编写了一个“数组理解”,如下所示:
argValues = for param in paramNames
if param of args
args[param]
else if param isnt 'cb'
throw new Error "Missing argument for paramater '#{param}' of procedure '#{func}'"
argValues[-1..-1] = cb
所有远程过程都使用“cb”参数通过回调提供结果。这需要被理解跳过,因为客户端不提供此回调(服务器这样做是为了可以对结果进行编码和写入以返回给客户端)。[-1..-1]
我的问题是理解为此输入了值“未定义”,因此我必须使用笨拙的语法将未定义替换为我的回调。我宁愿跳过它并调用argValues.push cb
.
有没有办法让理解跳过这样的值?