工作上的需求,需要计算一下四分位数,这里就记录一下实现的代码。
四分位数介绍,详见百度百科
/**
* 四分位数计算
* @param numbers
* @param position 传值分别对应 1:1/4位计算、2:中位数计算、3:3/4位计算
* @returns {*}
*/
function getQuartile(numbers, position = 1) {
if (position > 3 || position < 1 || numbers.length < 4) return false;
const sortedNumbers = numbers.sort((a, b) => (a - b));
const middleBefore = position * (numbers.length + 1) / 4;
const remainder = position * (numbers.length + 1) % 4;
if (remainder === 0) {
return sortedNumbers[middleBefore - 1];
} else {
const startIndex = Math.floor(middleBefore) - 1;
const remainderNumber = remainder / 4;
return remainderNumber * sortedNumbers[startIndex + 1] + (1 - remainderNumber) * sortedNumbers[startIndex];
}
}
如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!
如无特殊声明,文章均为原创,若有不正之处,万望告知。转载请附上原文地址,十分感谢!