在Angular控制器中,我有:

$scope.corn = {
        acres: 347.4,
        fertilizer: {
            arm: 0,
            dist: 164.97,
            other: 0
        }
    };

    $scope.corn.fertilizer.total = _.reduce($scope.corn.fertilizer);

    console.log($scope.corn);


在控制台中,我看到以下内容:

acres: 347.4
fertilizer: Object
    arm: 0
    dist: 164.97
    other: 0
    total: 0


我很确定语句“ _.reduce()不能正常工作”与事实相去甚远,因此,我改写为

有人可以向新的LoDash用户展示如何使用_.reduce将totals变量添加到对象中吗?

提前致谢!

最佳答案

您需要_.reduce调用中的回调。它看起来像这样:

$scope.corn.fertilizer.total = _.reduce($scope.corn.fertilizer, function(total, num) {
  return total + num;
});


第一个参数是集合,第二个参数是回调。回调函数带有一些参数,第一个是“累加器”(如果未定义,它将是集合的第一个元素,在本示例中就是这种情况),第二个是其中的项目值在集合中,第三个是键或索引(不需要)。

09-18 20:18