summaryrefslogtreecommitdiff
path: root/build-es/internal/keyIterator.js
blob: 9f12beb33ba1d96ebf8a553de41b4978f5cb04e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'use strict';

import isArrayLike from 'lodash-es/isArrayLike';
import keys from 'lodash-es/keys';

export default function keyIterator(coll) {
    var i = -1;
    var len;
    if (isArrayLike(coll)) {
        len = coll.length;
        return function next() {
            i++;
            return i < len ? i : null;
        };
    } else {
        var okeys = keys(coll);
        len = okeys.length;
        return function next() {
            i++;
            return i < len ? okeys[i] : null;
        };
    }
}