@modern-kit/utils
Version:
1 lines • 2.58 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../src/math/max/index.ts"],"sourcesContent":["/**\n * @description 숫자 배열에서 최대값을 반환하는 함수\n *\n * @param {number[] | readonly number[]} arr - 숫자 배열\n * @returns {number} 최대값\n *\n * @example\n * max([1, 2, 3]); // 3\n */\nexport function max(arr: number[] | readonly number[]): number;\n\n/**\n * @description 배열에서 iteratee 함수를 기반으로 최대값을 가진 항목을 반환하는 함수\n *\n * @template T - 배열 요소의 타입\n * @param {T[] | readonly T[]} arr - 배열\n * @param {(item: T) => number} iteratee - 배열 요소를 처리하는 함수\n * @returns {T} 최대값을 가진 항목\n *\n * @example\n * max([{ value: 1 }, { value: 2 }, { value: 3 }], (item) => item.value); // { value: 3 }\n */\nexport function max<T>(\n arr: T[] | readonly T[],\n iteratee: (item: T) => number\n): T;\n\n/**\n * @description 배열에서 최대값을 반환하는 함수\n *\n * iteratee 함수를 제공하는 경우 iteratee 함수를 기반으로 배열의 각 요소를 변환한 후 최대값을 가진 항목을 반환합니다.\n *\n * @template T - 배열 요소의 타입\n * @param {T[] | readonly T[]} arr - 배열\n * @param {(item: T) => number} iteratee - 배열 요소를 처리하는 함수\n * @returns {T} 최대값을 가진 항목\n *\n * @example\n * max([1, 2, 3]); // 3\n *\n * @example\n * max([{ value: 1 }, { value: 2 }, { value: 3 }], (item) => item.value); // { value: 3 }\n */\nexport function max<T>(\n arr: T[] | readonly T[],\n iteratee?: (item: T) => number\n): T | number {\n let maxValue = Number.MIN_SAFE_INTEGER;\n let maxItem = arr[0];\n\n if (arr.length < 1) return maxItem;\n\n if (!iteratee) {\n return Math.max(...(arr as number[]));\n }\n\n for (let i = 0; i < arr.length; i++) {\n const value = iteratee(arr[i]);\n\n if (value > maxValue) {\n maxItem = arr[i];\n maxValue = value;\n }\n }\n\n return maxItem;\n}\n"],"names":[],"mappings":";;AA2CO,SAAS,GAAA,CACd,KACA,QAAA,EACY;AACZ,EAAA,IAAI,WAAW,MAAA,CAAO,gBAAA;AACtB,EAAA,IAAI,OAAA,GAAU,IAAI,CAAC,CAAA;AAEnB,EAAA,IAAI,GAAA,CAAI,MAAA,GAAS,CAAA,EAAG,OAAO,OAAA;AAE3B,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,GAAI,GAAgB,CAAA;AAAA,EACtC;AAEA,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AACnC,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAAC,CAAA;AAE7B,IAAA,IAAI,QAAQ,QAAA,EAAU;AACpB,MAAA,OAAA,GAAU,IAAI,CAAC,CAAA;AACf,MAAA,QAAA,GAAW,KAAA;AAAA,IACb;AAAA,EACF;AAEA,EAAA,OAAO,OAAA;AACT;;;;"}