summaryrefslogtreecommitdiff
path: root/lib/transform.js
blob: 3dddae892745366855ff1fe2199d7effe1aa092b (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, iterator, callback) {
    if (arguments.length === 3) {
        callback = iterator;
        iterator = memo;
        memo = isArray(arr) ? [] : {};
    }

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