UNPKG

@modern-kit/utils

Version:
1 lines 2.61 kB
{"version":3,"file":"index.cjs","sources":["../../../src/math/sum/index.ts"],"sourcesContent":["/**\n * @description 숫자 배열의 모든 요소를 합산하는 함수\n *\n * @param {number[] | readonly number[]} arr - 숫자 배열\n * @returns {number} 배열의 모든 숫자의 합\n *\n * @example\n * sum([1, 2, 3]); // 6\n */\nexport function sum(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 {number} 배열의 모든 숫자의 합\n *\n * @example\n * sum([1, 2, 3], (item) => item * 2); // 12\n */\nexport function sum<T>(\n arr: T[] | readonly T[],\n iteratee: (item: T) => number\n): number;\n\n/**\n * @description 숫자 배열의 모든 요소를 합산하는 함수\n *\n * iteratee 함수를 사용하여 배열의 각 요소를 변환한 후 합산하는 함수\n *\n * @template T - 배열 요소의 타입\n * @param {T[] | readonly T[]} arr - 배열\n * @param {(item: T) => number} iteratee - 배열 요소를 처리하는 함수\n * @returns {number} 배열의 모든 숫자의 합\n *\n * @example\n * sum([1, 2, 3]); // 6\n *\n * @example\n * sum([{ value : 1 }, { value : 2 }, { value : 3 }], (item) => item.value); // 6\n */\nexport function sum<T>(\n arr: T[] | readonly T[],\n iteratee?: (item: T) => number\n): number {\n const calculateSum = () => {\n let acc = 0;\n for (let i = 0; i < arr.length; i++) {\n acc += arr[i] as number;\n }\n return acc;\n };\n\n const calculateSumWithIteratee = (iteratee: (item: T) => number) => {\n let acc = 0;\n for (let i = 0; i < arr.length; i++) {\n acc += iteratee(arr[i]);\n }\n return acc;\n };\n\n return iteratee ? calculateSumWithIteratee(iteratee) : calculateSum();\n}\n"],"names":["iteratee"],"mappings":";;AA2CO,SAAS,GAAA,CACd,KACA,QAAA,EACQ;AACR,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AACnC,MAAA,GAAA,IAAO,IAAI,CAAC,CAAA;AAAA,IACd;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,wBAAA,GAA2B,CAACA,SAAAA,KAAkC;AAClE,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AACnC,MAAA,GAAA,IAAOA,SAAAA,CAAS,GAAA,CAAI,CAAC,CAAC,CAAA;AAAA,IACxB;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,QAAA,GAAW,wBAAA,CAAyB,QAAQ,CAAA,GAAI,YAAA,EAAa;AACtE;;;;"}