compress
compress() function
Returns Iterable/AsyncIterable that filters elements from 'iterable' returning only those that have a corresponding element in 'selectors' that evaluates to 'true'. Stops when either 'iterable' or 'selectors' has been exhausted.
Signature:declare function compress<A, B>(selector: Array<A>, iterable: Iterable<B>): IterableIterator<B>;
declare function compress<A, B>(selector: Array<A>, iterable: AsyncIterable<B>): AsyncIterableIterator<B>;
declare function compress<A, B extends Iterable<unknown> | AsyncIterable<unknown>>(selector: Array<A>): (iterable: B) => ReturnIterableIteratorType<B>;
Example
const iter1 = compress([false,true,false,false,true], [1, 2, 3, 4, 5]);
iter1.next(); // {value: 2, done:false}
iter1.next(); // {value: 5, done:false}
iter1.next(); // {value: undefined, done:true }
const iter2 = compress([1,0,0,1,0], "abcde");
iter2.next(); // {value: "a", done:false}
iter2.next(); // {value: "d", done:false}
iter2.next(); // {value: undefined, done:true }
// with pipe
pipe(
[1, 2, 3],
compress([false, true, true]),
toArray,
); // [2, 3]