四分位数计算

工作上的需求,需要计算一下四分位数,这里就记录一下实现的代码。

四分位数介绍,详见百度百科

/**
 * 四分位数计算
 * @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];
    }
}
如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注