UNPKG

sequency

Version:

Functional sequences for processing iterable data in JavaScript

40 lines 1.42 kB
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