Skip to content

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:

typescript
declare function compress<A, B>(selector: Array<A>, iterable: Iterable<B>): IterableIterator<B>;

Example

ts
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]

see pipe, toArray

Open Source Code

Released under the Apache-2.0 License.