blob: 645dcbd9d344c17e2bd3e57aac7e69bb89ec21a7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import isArrayLike from 'lodash/isArrayLike';
import getIterator from './getIterator';
import keys from 'lodash/keys';
export default function iterator(coll) {
var i = -1;
var len;
if (isArrayLike(coll)) {
len = coll.length;
return function next() {
i++;
return i < len ? {value: coll[i], key: i} : null;
};
}
var iterate = getIterator(coll);
if (iterate) {
return function next() {
var item = iterate.next();
if (item.done)
return null;
i++;
return {value: item.value, key: i};
};
}
var okeys = keys(coll);
len = okeys.length;
return function next() {
i++;
var key = okeys[i];
return i < len ? {value: coll[key], key: key} : null;
};
}
|