summaryrefslogtreecommitdiff
path: root/lib/transform.js
blob: 819cd5d01e4ace66938f2194a9cd10d262a40604 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'use strict';

import isArray from 'lodash/isArray';

import eachOf from './eachOf';

export default function transform (arr, memo, iteratee, callback) {
    if (arguments.length === 3) {
        callback = iteratee;
        iteratee = memo;
        memo = isArray(arr) ? [] : {};
    }

    eachOf(arr, function(v, k, cb) {
        iteratee(memo, v, k, cb);
    }, function(err) {
        callback(err, memo);
    });
}