Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ค่าเฉลี่ยของอาร์เรย์ไม่นับค่าต่ำสุดและสูงสุดใน 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