gpt4 book ai didi

javascript - Lodash 适用于两个对象,但如果具有三个对象则返回 null

转载 作者:行者123 更新时间:2023-11-30 10:11:00 27 4
gpt4 key购买 nike

我有一个奇怪的plunker here ...

如果我删除原来的第 3 项,total_expenses 正确计算为 23196。但是对于第三个对象,total_expenses 为空。谁能看到我遗漏的东西?

total_expenses() 使用 _.reduce 对整个集合中的属性值求和。

$scope.loan.total_expenses = _.reduce(original, function(obj){
var grand = 0;
grand += obj.cost;
return grand;
});

最佳答案

您没有使用 reduce功能正常。 reduce 对值求和的典型用法是,您提供一个初始值作为第三个参数,并在回调的每一步返回增量值。正确代码:

$scope.loan.total_expenses = _.reduce(original, function(prev, curr) {
prev += curr.cost;
return prev;
}, 0);

在你的例子中,你的数组中有三个对象,reduce 回调将被调用三次:

  1. prev = 0, curr = original[0] => prev 变为 original[0].cost.
  2. prev = 原始[0].成本。 curr = original[1] => prev 变为 prev + original[1].cost,即 original[0].cost + original[1].cost。
  3. 等等

演示:http://plnkr.co/edit/YN35z6kDr7k4DOaQOOcr?p=preview

关于javascript - Lodash 适用于两个对象,但如果具有三个对象则返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26694332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com