# 去掉最低工资和最高工资后的工资平均值(1491)
# 题目
给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。
请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。
# 示例
输入:salary = [4000,3000,1000,2000]
输出:2500.00000
解释:最低工资和最高工资分别是 1000 和 4000 。去掉最低工资和最高工资以后的平均工资是 (2000+3000)/2= 2500
# 提示
- 3 <= salary.length <= 100
- 10^3 <= salary[i] <= 10^6
- salary[i] 是唯一的。
- 与真实值误差在 10^-5 以内的结果都将视为正确答案。
# 算法
# 模拟
注意:使用reduce()
时,需要第二个参数传入0
作为默认的第一次的accumulator
,否则第一次循环时的current
将会是数组的第二项,在获取最大最小值时会出错
export const average = (salary) => {
let min = +Infinity,
max = -Infinity;
let sum = salary.reduce((acc, cur) => {
min = Math.min(cur, min);
max = Math.max(cur, max);
return acc + cur;
}, 0);
return (sum - min - max) / (salary.length - 2);
};
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10