sequency
Version:
Functional sequences for processing iterable data in JavaScript
40 lines • 1.42 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.DropWhile = void 0;
var Sequence_1 = require("./Sequence");
var DropWhileIterator = /** @class */ (function () {
function DropWhileIterator(iterator, predicate) {
this.iterator = iterator;
this.predicate = predicate;
this.dropping = true;
}
DropWhileIterator.prototype.next = function (value) {
for (var item = this.iterator.next(); !item.done; item = this.iterator.next()) {
if (!this.dropping) {
return { done: false, value: item.value };
}
var result = this.predicate(item.value);
if (!result) {
this.dropping = false;
return { done: false, value: item.value };
}
}
return { done: true, value: undefined };
};
return DropWhileIterator;
}());
var DropWhile = /** @class */ (function () {
function DropWhile() {
}
/**
* Drops all elements of the sequence as long as the given `predicate` evaluates to true.
*
* @param {(item: T) => boolean} predicate
* @returns {Sequence<T>}
*/
DropWhile.prototype.dropWhile = function (predicate) {
return (0, Sequence_1.createSequence)(new DropWhileIterator(this.iterator, predicate));
};
return DropWhile;
}());
exports.DropWhile = DropWhile;
//# sourceMappingURL=dropWhile.js.map