如何在析构函数参数中重命名“_arg”?

时间:2013-12-10 03:14:58

标签: coffeescript destructuring

我有一个像这样的reduce函数:

ops = rqOps.reduce (p, { commit: id: cid, type: type }, idx, arr) ->
    # Do stuff here
    p
, {}

工作正常,但现在第二个参数的名称编译为_arg。我怎么能给它一个不同的名字?我尝试了几种不同的方法,例如arg = { commit: id: cid, type: type }{ commit: id: cid, type: type } : arg以及{ commit: id: cid, type: type } = arg,但没有任何内容可以编译到预期的结果中。我的语法出了什么问题?

1 个答案:

答案 0 :(得分:2)

为什么你关心第二个参数被称为什么?您的对象解构意味着您根本不会使用该参数,而只需使用cidtype_arg名称甚至其存在可能会发生变化,而且不会影响您的业务。

例如,如果你有这个:

rqOps = [
    { commit: { id: 1, type: 2 } }
    { commit: { id: 2, type: 4 } }
]
ops = rqOps.reduce (p, { commit: id: cid, type: type }, idx, arr) ->
    console.log(cid, type)
    p
, { }

然后您将在控制台中获得1, 22, 3。如果你想要整个第二个参数,那么给它一个名字并在迭代器函数中解压缩它:

ops = rqOps.reduce (p, arg, idx, arr) ->
    { commit: id: cid, type: type } = arg
    #...