UNPKG

linq-extensions

Version:

Linq-like extension methods for JavaScript and TypeScript builtin collections

24 lines 888 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DistinctIterable = void 0; const iterable_1 = require("../iterable"); class DistinctIterable extends iterable_1.Iterable { constructor(originalIterable, selector, equalityCheck) { super(); this.originalIterable = originalIterable; this.selector = selector; this.equalityCheck = equalityCheck; } *[Symbol.iterator]() { const iteratedElements = []; for (const element of this.originalIterable) { const mappedElement = this.selector(element); if (iteratedElements.all(x => !this.equalityCheck(x, mappedElement))) { iteratedElements.push(mappedElement); yield element; } } } } exports.DistinctIterable = DistinctIterable; //# sourceMappingURL=distinct-iterable.js.map