1 var arrayEach = require(
'./_arrayEach'),
2 baseCreate = require(
'./_baseCreate'),
3 baseForOwn = require(
'./_baseForOwn'),
4 baseIteratee = require(
'./_baseIteratee'),
5 getPrototype = require(
'./_getPrototype'),
6 isArray = require(
'./isArray'),
7 isBuffer = require(
'./isBuffer'),
8 isFunction = require(
'./isFunction'),
9 isObject = require(
'./isObject'),
10 isTypedArray = require(
'./isTypedArray');
42 function transform(
object, iteratee, accumulator) {
43 var isArr = isArray(
object),
44 isArrLike = isArr || isBuffer(
object) || isTypedArray(
object);
46 iteratee = baseIteratee(iteratee, 4);
47 if (accumulator == null) {
48 var Ctor =
object &&
object.constructor;
50 accumulator = isArr ?
new Ctor : [];
52 else if (isObject(
object)) {
53 accumulator = isFunction(Ctor) ? baseCreate(getPrototype(
object)) : {};
59 (isArrLike ? arrayEach : baseForOwn)(
object,
function(value, index,
object) {
60 return iteratee(accumulator, value, index,
object);
65 module.exports = transform;