linq-extensions
Version:
Linq-like extension methods for JavaScript and TypeScript builtin collections
24 lines • 942 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IntersectIterable = void 0;
const iterable_1 = require("../iterable");
class IntersectIterable extends iterable_1.Iterable {
constructor(originalIterable, otherIterable, equalityCheck = (left, right) => left === right) {
super();
this.originalIterable = originalIterable;
this.otherIterable = otherIterable;
this.equalityCheck = equalityCheck;
}
*[Symbol.iterator]() {
const elementsTaken = [];
for (const element of this.originalIterable) {
if (!elementsTaken.any(x => this.equalityCheck(x, element)) &&
this.otherIterable.any(x => this.equalityCheck(x, element))) {
elementsTaken.push(element);
yield element;
}
}
}
}
exports.IntersectIterable = IntersectIterable;
//# sourceMappingURL=intersect-iterable.js.map