pop-iterate
Version:
A polymorphic iterate operator for arrays and other iterables
23 lines (19 loc) • 698 B
JavaScript
var ArrayIterator = require("./array-iterator");
var ObjectIterator = require("./object-iterator");
module.exports = iterate;
function iterate(iterable, start, stop, step) {
if (!iterable) {
return empty;
} else if (Array.isArray(iterable)) {
return new ArrayIterator(iterable, start, stop, step);
} else if (typeof iterable.next === "function") {
return iterable;
} else if (typeof iterable.iterate === "function") {
return iterable.iterate(start, stop, step);
} else if (typeof iterable === "object") {
return new ObjectIterator(iterable);
} else {
throw new TypeError("Can't iterate " + iterable);
}
}
;