linq-extensions
Version:
Linq-like extension methods for JavaScript and TypeScript builtin collections
24 lines • 888 B
JavaScript
;
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