@jasmith79/sequable
Version:
Library functions for working with generators
26 lines (25 loc) • 750 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.filter = void 0;
const sequable_js_1 = require("./sequable.js");
/**
* Filters the items of the given Iterator, Iterable, or generator function
* using the supplied predicate function.
*
* @param pred The predicate function.
* @param sequable The Iterator, Iterable, or generator function sequence
* to filter.
*/
function* filter(pred, seq) {
const iter = (0, sequable_js_1.toIterator)(seq);
let { value, done } = iter.next();
while (!done) {
if (pred(value)) {
yield value;
}
({ value, done } = iter.next());
}
if (value !== undefined && pred(value))
return value;
}
exports.filter = filter;