【问题标题】:Coffeescript array comprehension skip valueCoffeescript 数组理解跳过值
【发布时间】:2014-06-03 04:07:03
【问题描述】:

我有一个 RPC 库,要移植到 coffeescript。它必须做的一件事是重新排序函数调用参数以确保它们的顺序正确。为此,我编写了一个“数组理解”,如下所示:

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

有没有办法让理解跳过这样的值?

【问题讨论】:

    标签: javascript node.js coffeescript for-comprehension


    【解决方案1】:

    有一个when 子句可以用于循环,但the fine manual 仅在某些示例中包含它。 when 允许您在循环体执行之前对循环变量应用条件。

    如果您想跳过不在args 中的params,那么

    for param in paramNames when param !of args
        args[param]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-04
      • 2012-03-15
      • 1970-01-01
      • 2021-04-18
      • 2012-06-13
      • 2012-06-14
      • 2017-06-16
      • 2012-05-07
      相关资源
      最近更新 更多