/* 剔除异常值方法:几个数的平均值且不超出平均值的百分之几
* 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 日
© 允许规范转载
1 条评论
怎么收藏这篇文章?