我是 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!怎么办?
感谢您的帮助。
代码处理数组
cid
并创建一个对象 register
。它将 curr[1]
中的值汇总为总计,并将 curr[1]
分配给寄存器 curr[0]
中的键 object
。