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 31 | 1x 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));
}
|