es-toolkit/docs/reference/math/medianBy.md
Jakub Sieczczyński e71f706461
Some checks are pending
CI / codecov (push) Waiting to run
Release / release (push) Waiting to run
feat(median): Add median and medianBy functions (#723)
* add median

* add medianBy

* fix lint errors

* fix lint error

* Remove .toSorted usage

* Add export

* Update src/math/median.ts

* Apply suggestions from code review

* Update median.md

* Update median.md

* Update medianBy.md

* Update medianBy.md

* Update medianBy.md

* Update median.md

* docs

* docs

* docs

---------

Co-authored-by: Sojin Park <raon0211@gmail.com>
2024-10-21 00:03:57 +09:00

1022 B

medianBy

Calculates the median of an array of elements when applying the getValue function to each element.

The median is the middle value of a sorted array. If the array has an odd number of elements, the median is the middle value. If the array has an even number of elements, it returns the average of the two middle values.

If the array is empty, this function returns NaN.

Signature

export function medianBy<T>(items: T[], getValue: (element: T) => number): number;

Parameters

  • items (T[]): An array to calculate the median.
  • getValue ((element: T) => number): A function that selects a numeric value from each element.

Returns

(number): The median of all the numbers as determined by the getValue function.

Examples

medianBy([{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }, { a: 5 }], x => x.a); // Returns: 3
medianBy([{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }], x => x.a); // Returns: 2.5
medianBy([], x => x.a); // Returns: NaN