UNPKG

@modern-kit/utils

Version:
1 lines 1.49 kB
{"version":3,"file":"index.mjs","sources":["../../../src/array/partition/index.ts"],"sourcesContent":["/**\n * @description 배열을 주어진 조건에 따라 두 개의 배열로 분할합니다.\n *\n * @template T - 배열의 요소 타입\n * @param {T[] | readonly T[]} arr - 분할할 배열\n * @param {(item: T) => boolean} predicate - 배열의 각 요소에 대해 참/거짓을 반환하는 함수\n * @returns {[truthyArray: T[], falsyArray: T[]]} 조건을 만족하는 요소와 그렇지 않은 요소를 각각 포함하는 두 개의 배열을 반환합니다.\n *\n * @example\n * const numbers = [1, 2, 3, 4, 5];\n * const [even, odd] = partition(numbers, (num) => num % 2 === 0);\n *\n * even; // [2, 4]\n * odd; // [1, 3, 5]\n */\nexport function partition<T>(\n arr: T[] | readonly T[],\n predicate: (item: T) => boolean\n): [truthyArray: T[], falsyArray: T[]] {\n const truthyArray: T[] = [];\n const falsyArray: T[] = [];\n\n for (const item of arr) {\n if (predicate(item)) {\n truthyArray.push(item);\n } else {\n falsyArray.push(item);\n }\n }\n\n return [truthyArray, falsyArray];\n}\n"],"names":[],"mappings":"AAeO,SAAS,SAAA,CACd,KACA,SAAA,EACqC;AACrC,EAAA,MAAM,cAAmB,EAAC;AAC1B,EAAA,MAAM,aAAkB,EAAC;AAEzB,EAAA,KAAA,MAAW,QAAQ,GAAA,EAAK;AACtB,IAAA,IAAI,SAAA,CAAU,IAAI,CAAA,EAAG;AACnB,MAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AAAA,IACvB,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,IACtB;AAAA,EACF;AAEA,EAAA,OAAO,CAAC,aAAa,UAAU,CAAA;AACjC;;;;"}