使用 Lodash 的 reduce 对集合求和

Don*_*n P 1 lodash

我有一个简单的集合:

[{a: 1}, {a: 2}, {a: 3}]

如何使用 Lodash 的 reduce 来获取所有“a”属性的总和?

这似乎是一个微不足道的/规范的用法,但我无法正确使用语法,而且令人惊讶的是,除了Lodash 的示例之外,找不到任何文档。

使用 Lodash 的文档示例,它应该是:

const total = _.reduce([{ a: 1}, {a: 2}, {a: 3}], (sum, elem) => elem.a);

然而,这将返回值“3”而不是“6”。

注意:我特别询问reduce. 我知道其他方法,比如这个问题中的方法

Ada*_*uch 5

您忘记添加sumelem.a. 此外,您需要初始减少,否则,sum将初始化为{ a: 1 }

_.reduce([{ a: 1}, {a: 2}, {a: 3}], (sum, elem) => sum + elem.a, 0);
Run Code Online (Sandbox Code Playgroud)

你可能也想看看sumBy()这个。它是同一个减速器,只是更简洁:

_.sumBy([{ a: 1}, {a: 2}, {a: 3}], 'a');
Run Code Online (Sandbox Code Playgroud)