All files / array/operator partition.ts

100% Statements 10/10
100% Branches 2/2
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16    5x 8x 8x 8x 8x 4x   4x     4x      
import {Predicate, Tuple} from 'fnxt/fnxt-types';
 
export const partition = <T>(predicate: Predicate<T>) => (array: T[]): Tuple<T[], T[]> => {
  const a: T[] = [];
  const b: T[] = [];
  for (const element of array) {
    if (predicate(element)) {
      a.push(element);
    } else {
      b.push(element);
    }
  }
  return [a, b] as const;
};