Javascript 减少不是给出正确的总数

Javascript 减少不是给出正确的总数,javascript,lodash,Javascript,Lodash,我的对象groupBy.Food看起来像 [ Object amount: "15.0" category: Object debit: true __proto__: Object , Object amount: "10.0" category: Object debit: true __proto__: Object , Object amount: "11.1" category: Object debit: true __proto__: Object ] 我想要的是每个对象中的

我的对象
groupBy.Food
看起来像

[
Object
amount: "15.0"
category: Object
debit: true
__proto__: Object
, 
Object
amount: "10.0"
category: Object
debit: true
__proto__: Object
, 
Object
amount: "11.1"
category: Object
debit: true
__proto__: Object
]
我想要的是每个对象中的金额的总和。我用的是

当我看到
s的值时,我得到

s
"[object Object]1011.1"
我没有在这里做什么?

默认情况下,从列表中的前两项开始,因此
s
将是数组中的第一项,
entry
将是第一次调用函数时的第二项。为其指定一个值,以开始:

var s = _.reduce(groupBy.Food, function(s, entry) {
    return s + parseFloat(entry.amount);
}, 0);
var s=\减少(groupBy.Food,函数,条目){
返回s+s浮动(分录金额);
}, 0);

Array
reduce
的行为方式相同。)

您还可以使用
.sum(Array)
.sumBy(Array,[iteratee=.identity])
对数组和对象进行求和。参见下面的示例

_.sum([4, 2, 8, 6]); // ➜ 20

var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
_.sumBy(objects, function(o) { return o.n; }); // ➜ 20
_.sumBy(objects, 'n');// ➜ 20

这就是原因。谢谢你@minitech
_.sum([4, 2, 8, 6]); // ➜ 20

var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
_.sumBy(objects, function(o) { return o.n; }); // ➜ 20
_.sumBy(objects, 'n');// ➜ 20