iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
31 lines • 978 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ZipLongestIterator = void 0;
class ZipLongestIterator {
constructor(iterators) {
this.iterators = iterators;
this.done = new Set();
}
[Symbol.iterator]() {
return this;
}
next(...args) {
const values = [];
for (let i = 0; i < this.iterators.length; i++) {
if (!this.done.has(i)) {
const next = this.iterators[i].next(...args);
if (next.done)
this.done.add(i);
values.push(next.value);
}
else
values.push(undefined);
}
if (values.length === this.done.size)
return { done: true, value: undefined };
return { value: values, done: false };
}
}
exports.ZipLongestIterator = ZipLongestIterator;
exports.default = ZipLongestIterator;
//# sourceMappingURL=ZipLongestIterator.js.map