2013-12-10 29 views
0

我有这样的功能降低:如何在解构函数参数中重命名“_arg”?

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,但没有编译到预期的结果。我的语法有什么问题?

回答

2

你为什么在意第二个参数被称为什么?你的对象解构意味着你根本不会用这个理由,你只需要使用cidtype。名称,甚至它的存在都会随着您的业务而改变。

举例来说,如果你有这样的:

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 
    #... 
+0

你的最后一块没有替代'和'arg' _arg'。编译后的代码没有其他区别。 – hpaulj

+0

@hpaulj:对不起,第一次误读你的评论,我的眼睛看到“不”而不是“做”。 –

+0

我想引用第二个参数,因为我只想解构它的一些属性。如果对象有100个属性,我只想解构其中的2个,同时仍然可以访问其他属性,那该怎么办? – zakdances