From df8eca6ef2de1ee1915ac01d24a694db541d1c74 Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Sun, 18 Jan 2026 14:37:23 +0300 Subject: [PATCH] feat(splitArray): create a util to split an array based on a boolean resulting callback --- src/shared/lib/utils/splitArray/splitArray.ts | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/shared/lib/utils/splitArray/splitArray.ts diff --git a/src/shared/lib/utils/splitArray/splitArray.ts b/src/shared/lib/utils/splitArray/splitArray.ts new file mode 100644 index 0000000..5d8bf71 --- /dev/null +++ b/src/shared/lib/utils/splitArray/splitArray.ts @@ -0,0 +1,8 @@ +export function splitArray(array: T[], callback: (item: T) => boolean) { + return array.reduce<[T[], T[]]>( + ([pass, fail], item) => ( + callback(item) ? pass.push(item) : fail.push(item), [pass, fail] + ), + [[], []], + ); +}