(coll, accumulator, iteratee, callback)
| 48 | * }) |
| 49 | */ |
| 50 | export default function transform (coll, accumulator, iteratee, callback) { |
| 51 | if (arguments.length <= 3) { |
| 52 | callback = iteratee; |
| 53 | iteratee = accumulator; |
| 54 | accumulator = isArray(coll) ? [] : {}; |
| 55 | } |
| 56 | callback = once(callback || noop); |
| 57 | var _iteratee = wrapAsync(iteratee); |
| 58 | |
| 59 | eachOf(coll, function(v, k, cb) { |
| 60 | _iteratee(accumulator, v, k, cb); |
| 61 | }, function(err) { |
| 62 | callback(err, accumulator); |
| 63 | }); |
| 64 | } |