export const removeDuplicates = (arr: T[]): T[] => { return Array.from(new Set(arr)) } export const flattenArray = (arr: T[][]): T[] => { return arr.flat() } export const filterArray = (arr: T[], conditionFn: (value: T) => boolean): T[] => { return arr.filter(conditionFn) } export const transformArray = (arr: T[], transformFn: (value: T) => U): U[] => { return arr.map(transformFn) } export const capitalizeEach = (array: string[]): string[] => { if (!Array.isArray(array)) { throw new Error('Capitalize each can only be called on arrays') } return array.map(item => item.replace(/\b\w/g, char => char.toUpperCase())) } export const implode = (arr: T[], delimiter: string = ','): string => { return arr.join(delimiter) };