@antv/g2
Version:
the Grammar of Graphics in Javascript
46 lines (38 loc) • 747 B
text/typescript
import { reduce, isNumber } from '@antv/util';
/**
* 获得中位数
* @param array
*/
export function getMedian(array: number[]) {
const arr = [...array];
// 先排序
arr.sort((a: number, b: number) => {
return a - b;
});
const len = arr.length;
// median
// 0
if (len === 0) {
return 0;
}
// 奇数
if (len % 2 === 1) {
return arr[(len - 1) / 2];
}
// 偶数
return (arr[len / 2] + arr[len / 2 - 1]) / 2;
}
/**
* 获得平均值
* @param array
*/
export function getMean(array: number[]) {
const sum = reduce(
array,
(r: number, num: number) => {
return (r += isNaN(num) || !isNumber(num) ? 0 : num);
},
0
);
return array.length === 0 ? 0 : sum / array.length;
}