0

我有一个这样的减少功能:

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

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

4

1 回答 1

2

你为什么关心第二个参数叫什么?您的对象解构意味着您根本不会使用该参数,而只会使用cidand type_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
    #...
于 2013-12-10T03:40:58.880 回答