Average of array excluding min max JavaScript

JavascriptWeb DevelopmentFront End TechnologyObject Oriented Programming

We are required to write a JavaScript function that takes in an array of numbers. The function should calculate the average of the array, just excluding the largest and the smallest element of the array.

We will use the Array.prototype.reduce() method to calculate the sum of the array elements and at the same time find the greatest and smallest element.

Example

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

Output

This will produce the following output −

5.5
raja
Published on 25-Nov-2020 09:47:45
Advertisements