数组的平均值,不包括最小最大JavaScript

我们需要编写一个包含数字数组的JavaScript函数。该函数应计算数组的平均值,仅排除数组的最大和最小元素。

我们将使用Array.prototype.reduce()方法来计算数组元素的总和,同时找到最大和最小的元素。

示例

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));

输出结果

这将产生以下输出-

5.5