All files array.ts

100% Statements 30/30
100% Branches 14/14
100% Functions 6/6
100% Lines 30/30

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 17 18 19 20 21 22 23 24 25 26 27 28 29 30 311x 2x 1x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
export function chunk<T>(array: T[], size = 1): T[][] {
  if (size < 1) return [];
  const res: T[][] = [];
  for (let i = 0; i < array.length; i += size) res.push(array.slice(i, i + size));
  return res;
}
 
export function compact<T>(array: (T | null | undefined | false | 0 | "")[]): T[] {
  return array.filter(Boolean) as T[];
}
 
export function flatten<T>(array: any[]): T[] {
  return array.reduce((acc, val) => acc.concat(val), []);
}
 
export function flattenDeep<T>(array: any[]): T[] {
  return array.reduce(
    (acc, val) => acc.concat(Array.isArray(val) ? flattenDeep(val) : val),
    []
  );
}
 
export function uniq<T>(array: T[]): T[] {
  return [...new Set(array)];
}
 
export function intersection<T>(a: T[], b: T[]): T[] {
  const setB = new Set(b);
  return a.filter(x => setB.has(x));
}