我有一个像这样的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
,但没有任何内容可以编译到预期的结果中。我的语法出了什么问题?
答案 0 :(得分:2)
为什么你关心第二个参数被称为什么?您的对象解构意味着您根本不会使用该参数,而只需使用cid
和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, 2
和2, 3
。如果你想要整个第二个参数,那么给它一个名字并在迭代器函数中解压缩它:
ops = rqOps.reduce (p, arg, idx, arr) ->
{ commit: id: cid, type: type } = arg
#...