24 lines
537 B
JavaScript
24 lines
537 B
JavaScript
'use strict';
|
|
|
|
var _keys = require('async.util.keys');
|
|
var isArrayLike = require('async.util.isarraylike');
|
|
|
|
module.exports = function keyIterator(coll) {
|
|
var i = -1;
|
|
var len;
|
|
var keys;
|
|
if (isArrayLike(coll)) {
|
|
len = coll.length;
|
|
return function next() {
|
|
i++;
|
|
return i < len ? i : null;
|
|
};
|
|
} else {
|
|
keys = _keys(coll);
|
|
len = keys.length;
|
|
return function next() {
|
|
i++;
|
|
return i < len ? keys[i] : null;
|
|
};
|
|
}
|
|
};
|