VDL Plugin SDK

medianBy

Import from @varavel/vdl-plugin-sdk/utils/math.

function medianBy<T>(items, getValue): number;

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.

Type Parameters

Type ParameterDescription
TThe type of elements in the array.

Parameters

ParameterTypeDescription
itemsreadonly T[]An array to calculate the median.
getValue(element) => numberA function that selects a numeric value from each element.

Returns

number

The median of all the numbers as determined by the getValue function.

Example

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