00001 var arrayReduce = require('./_arrayReduce'), 00002 baseEach = require('./_baseEach'), 00003 baseIteratee = require('./_baseIteratee'), 00004 baseReduce = require('./_baseReduce'), 00005 isArray = require('./isArray'); 00006 00044 function reduce(collection, iteratee, accumulator) { 00045 var func = isArray(collection) ? arrayReduce : baseReduce, 00046 initAccum = arguments.length < 3; 00047 00048 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); 00049 } 00050 00051 module.exports = reduce;