( array: T | NestedArray<T>, filter: (element: T) => boolean = () => true )
| 15 | * @return Returns the new flattened array (new array or `result` if provided) |
| 16 | */ |
| 17 | export function flatten<T>( |
| 18 | array: T | NestedArray<T>, |
| 19 | filter: (element: T) => boolean = () => true |
| 20 | ): T[] { |
| 21 | // Wrap single object in array |
| 22 | if (!Array.isArray(array)) { |
| 23 | return filter(array) ? [array] : []; |
| 24 | } |
| 25 | // Deep flatten and filter the array |
| 26 | return flattenArray(array, filter, []); |
| 27 | } |
| 28 | |
| 29 | /** Deep flattens an array. Helper to `flatten`, see its parameters */ |
| 30 | function flattenArray<T>(array: NestedArray<T>, filter: (element: T) => boolean, result: T[]): T[] { |
no test coverage detected
searching dependent graphs…