2014-09-24 4 views
0

감소, 나는이 : 콘솔에서 LoDash : 각도 컨트롤러에서 각도 수익률 0

$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를 사용하여 개체에 합계 변수를 추가하는 방법을 보여줄 수 있습니까?

미리 감사드립니다.

답변

2

_.reduce 호출에서 콜백을 원합니다.

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

첫 번째 인수는 콜백이고 두 번째 인수는 콜백입니다. 콜백은 몇 가지 인수를 취합니다. 첫 번째는 "accumulator"입니다 (이 예제에서는 정의되지 않은 콜렉션의 첫 번째 요소입니다). 두 번째는 항목의 값입니다. 컬렉션, 세 번째는 키 또는 인덱스 (필요하지 않음)입니다.

+0

누산기를 초기화하려면 Tom의 답을 덧붙이면'reduce' 함수의 세 번째 인수가됩니다. [lodash docs] (http://lodash.com/docs#reduce) –

+1

아, 예, 언급 했어야합니다. 새로운 객체 나 배열처럼 합계가 아닌 다른 것을 생성하는 경우 일반적으로 원하는 작업입니다. 잘 했어. –