UNPKG

@modern-kit/utils

Version:
1 lines 2.18 kB
{"version":3,"file":"index.mjs","sources":["../../../src/math/average/index.ts"],"sourcesContent":["import { sum } from '../sum';\n\n/**\n * @description 숫자 배열의 모든 요소를 합산하여 평균을 구하는 함수\n *\n * @param {number[] | readonly number[]} arr - 숫자 배열\n * @returns {number} 배열의 모든 숫자의 평균\n *\n * @example\n * average([1, 2, 3]); // 2\n */\nexport function average(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 * average([{ value : 1 }, { value : 2 }, { value : 3 }], (item) => item.value); // 2\n */\nexport function average<T>(\n arr: T[] | readonly T[],\n iteratee: (item: T) => number\n): number;\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 {number} 배열의 모든 숫자의 평균\n *\n * @example\n * average([1, 2, 3]); // 2\n *\n * @example\n * average([{ value : 1 }, { value : 2 }, { value : 3 }], (item) => item.value); // 2\n */\nexport function average<T>(\n arr: T[] | readonly T[],\n iteratee?: (item: T) => number\n): number {\n if (arr.length < 1) return 0;\n\n if (!iteratee) {\n return sum(arr as number[]) / arr.length;\n }\n\n return sum(arr, iteratee) / arr.length;\n}\n"],"names":[],"mappings":";;AA6CO,SAAS,OAAA,CACd,KACA,QAAA,EACQ;AACR,EAAA,IAAI,GAAA,CAAI,MAAA,GAAS,CAAA,EAAG,OAAO,CAAA;AAE3B,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,GAAA,CAAI,GAAe,CAAA,GAAI,GAAA,CAAI,MAAA;AAAA,EACpC;AAEA,EAAA,OAAO,GAAA,CAAI,GAAA,EAAK,QAAQ,CAAA,GAAI,GAAA,CAAI,MAAA;AAClC;;;;"}