diff --git a/src/array.ts b/src/array.ts index a0a080c6..9da87831 100644 --- a/src/array.ts +++ b/src/array.ts @@ -221,12 +221,13 @@ export const objectify = ( export const select = ( array: readonly T[], mapper: (item: T, index: number) => K, - condition: (item: T, index: number) => boolean + condition?: (item: T, index: number) => boolean ) => { if (!array) return [] + let mapped: K return array.reduce((acc, item, index) => { - if (!condition(item, index)) return acc - acc.push(mapper(item, index)) + if (condition) condition(item, index) && acc.push(mapper(item, index)) + else (mapped = mapper(item, index)) != null && acc.push(mapped) return acc }, [] as K[]) }