@modern-kit/utils
Version:
1 lines • 1.37 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/array/flatMapDeep/index.ts"],"sourcesContent":["import { flattenDeep } from '../flattenDeep';\n\ntype ExtractNestedArrayType<T> = T extends readonly (infer U)[]\n ? ExtractNestedArrayType<U>\n : T;\n\n/**\n * @description 배열의 각 요소에 iteratee 함수를 적용하고 결과를 모든 깊이로 평탄화합니다.\n *\n * @template T - 배열 요소의 유형입니다.\n * @template U - iteratee 함수에서 반환되는 배열 요소들의 타입입니다.\n * @param {T[] | readonly T[]} arr - 평탄화할 중첩 배열입니다.\n * @param {(item: T) => U} iteratee - 새로운 배열 요소를 생성하는 함수입니다.\n * @returns {ExtractNestedArrayType<U>[]} 입력 배열의 각 요소에 iteratee를 적용한 후 깊게 평탄화된 새로운 배열을 반환합니다.\n *\n * @example\n * flatMapDeep([1, 2, 3], n => [[n, n]]);\n * // [1, 1, 2, 2, 3, 3]\n *\n * flatMapDeep([1, 2, 3], n => [[[n, n]]]);\n * // [1, 1, 2, 2, 3, 3]\n */\nexport function flatMapDeep<T, U>(\n arr: T[] | readonly T[],\n iteratee: (item: T) => U\n): ExtractNestedArrayType<U>[] {\n return flattenDeep(arr.map((item: T) => iteratee(item)));\n}\n"],"names":[],"mappings":";;;AAsBO,SAAS,WAAA,CACd,KACA,QAAA,EAC6B;AAC7B,EAAA,OAAO,WAAA,CAAY,IAAI,GAAA,CAAI,CAAC,SAAY,QAAA,CAAS,IAAI,CAAC,CAAC,CAAA;AACzD;;;;"}