sequency
Version:
Functional sequences for processing iterable data in JavaScript
34 lines • 1.16 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Filter = void 0;
var Sequence_1 = require("./Sequence");
var FilterIterator = /** @class */ (function () {
function FilterIterator(predicate, iterator) {
this.predicate = predicate;
this.iterator = iterator;
}
FilterIterator.prototype.next = function (value) {
for (var item = this.iterator.next(); !item.done; item = this.iterator.next()) {
if (this.predicate(item.value)) {
return { done: false, value: item.value };
}
}
return { done: true, value: undefined };
};
return FilterIterator;
}());
var Filter = /** @class */ (function () {
function Filter() {
}
/**
* Returns a new sequence consisting of all elements that match the given `predicate`.
*
* @param {(T) => boolean} predicate
* @returns {Sequence<T>}
*/
Filter.prototype.filter = function (predicate) {
return (0, Sequence_1.createSequence)(new FilterIterator(predicate, this.iterator));
};
return Filter;
}());
exports.Filter = Filter;
//# sourceMappingURL=filter.js.map