Computer >> Máy Tính >  >> Lập trình >> Javascript

Trung bình của mảng không bao gồm JavaScript tối thiểu tối đa

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng số. Hàm sẽ tính giá trị trung bình của mảng, chỉ loại trừ phần tử lớn nhất và nhỏ nhất của mảng.

Chúng ta sẽ sử dụng phương thức Array.prototype.reduce () để tính tổng các phần tử của mảng, đồng thời tìm ra phần tử lớn nhất và nhỏ nhất.

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

5.5