Reduce( );
- 배열을 순회하며 각 요소에 iteratee 함수를 적용
- 그 결과값을 계속해서 누적(accumulate)
- 최종적으로 누적된 결과값을 리턴
reduce(arr, iteratee, initialValue) iteratee(acc, curr, idx, arr)
reduce = function (arr, iteratee, initVal) { _.each(arr, function(acc, cur, arr) { if (initVal === undefined) { initVal = acc; // 초기값이 주어지지 않았을 때 초기값은 배열의 첫 요소(acc) } else { initVal = iteratee(initVal, acc, cur, arr); } }); return initVal; };