/** * Calls a defined callback on each element of an array. * Then, flattens the result into a new array. */ export const flatMap = (array: T[], callback: (value: T, index: number, array: T[]) => U[]): U[] => { const result: U[] = []; array.map(callback).forEach(arr => { result.push(...arr); }); return result; };