Cần viết hàm JavaScript nhận mảng số. Hàm tính trung bình của mảng, chỉ loại trừ phần tử lớn nhất và nhỏ nhất.
Sử dụng Array.prototype.reduce() để tính tổng và tìm max, min cùng lúc.
Ví dụ
const arr = [2, 6, 5, 4, 6, 8, 8, 5, 6, 6, 9, 4, 1, 4, 6, 7];
const specialAverage = (arr = []) => {
const { length } = arr;
if(length <= 2){
return 0;
};
const { sum, min, max } = arr.reduce((acc, val) => {
let { min, max, sum } = acc;
sum += val;
if(val > max){
max = val;
};
if(val < min){
min = val;
};
return { min, max, sum };
}, {
min: Number.MAX_VALUE,
max: Number.MIN_VALUE,
sum: 0
});
return (sum - min - max) / (length - 2);
};
console.log(specialAverage(arr));
Kết quả
Điều này sẽ tạo ra đầu ra sau:
5.5