UNPKG

sequency

Version:

Functional sequences for processing iterable data in JavaScript

36 lines 1.2 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.Distinct = void 0; var Sequence_1 = require("./Sequence"); var DistinctIterator = /** @class */ (function () { function DistinctIterator(iterator) { this.iterator = iterator; this.set = new Set(); } DistinctIterator.prototype.next = function (value) { for (var item = this.iterator.next(); !item.done; item = this.iterator.next()) { var sizeBeforeAdd = this.set.size; this.set.add(item.value); if (this.set.size > sizeBeforeAdd) { return { done: false, value: item.value }; } } this.set.clear(); return { done: true, value: undefined }; }; return DistinctIterator; }()); var Distinct = /** @class */ (function () { function Distinct() { } /** * Returns a new sequence which discards all duplicate elements. * * @returns {Sequence<T>} */ Distinct.prototype.distinct = function () { return (0, Sequence_1.createSequence)(new DistinctIterator(this.iterator)); }; return Distinct; }()); exports.Distinct = Distinct; //# sourceMappingURL=distinct.js.map