有人可以帮我解释一下这段代码吗!谢谢

问题描述 投票:0回答:1

我是 JS 新手,试图通过阅读文档和分析其他人的代码来理解该语言。我遇到了这段使用reduce方法的代码。我知道代码在做什么,但让我很困惑。 这是代码:

var register = cid.reduce(function(acc, curr) {
     acc.total += curr[1];
     acc[curr[0]] = curr[1];
     return acc;
}, {total: 0});

根据 Mozilla dev 的说法,reduce 接受一个函数或回调,并且回调接受四个参数(acc、cur、currindex、数组),当然这些都是可选的。

上面的代码有两个参数 - caccumulator、currentValue。当我查看代码时, currentValue 作为数组或 thisArg 工作,它是如何通过的?并且累加器也可以作为数组工作= acc[curr[0]] = curr[1],这怎么可能?而不是返回 acc!怎么办?

感谢您的帮助。

javascript
1个回答
-1
投票

代码处理数组

cid
并创建一个对象
register
。它将
curr[1]
中的值汇总为总计,并将
curr[1]
分配给寄存器
curr[0]
中的键
object

© www.soinside.com 2019 - 2024. All rights reserved.