/* 剔除异常值方法:几个数的平均值且不超出平均值的百分之几
 * arr: 需要计算的数组
 * float: 浮动值,0.1(10%)、0.2(20%)...
 * 返回值为剔除异常值后计算的平均值
 */
function test(arr, float) {
    var result = [];
    var sum = 0;
    for (var n in arr) {
        sum += arr[n];
    }
    var avg = sum / arr.length;
    var avgL = avg * (1 - float * 1);
    var avgU = avg * (1 + float * 1);
    var i = -1;
    for (var n in arr) {
        var temp = arr[n];
        if (avgL <= temp && temp <= avgU) {
            i++;
            result[i] = temp;
        }
    }
    if (result.length == 0) {
        console.log("所有数都不在平均值的±" + float + "范围内");
        return [];
    }
    sum = 0;
    for (var n in result) {
        sum += result[n];
    }
    avg = sum / result.length;
    console.log("符合平均值±" + float + "范围内的数是:" + result + ",它们的平均值是" + avg);
    return avg;
}
最后修改:2023 年 11 月 18 日
如果觉得我的文章对你有用,请随意赞赏