iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
26 lines • 752 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FilterIterator = void 0;
/**
* An iterator that filters the values from the input Iterator<T>, to only those that return a truthy value in the
* `predicate`.
*/
class FilterIterator {
constructor(iterator, predicate) {
this.iterator = iterator;
this.predicate = predicate;
}
[Symbol.iterator]() {
return this;
}
next(...args) {
let result;
do
result = this.iterator.next(...args);
while (!result.done && !this.predicate(result.value));
return result;
}
}
exports.FilterIterator = FilterIterator;
exports.default = FilterIterator;
//# sourceMappingURL=FilterIterator.js.map