บทความนี้จะแสดงวิธีเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขและคืนค่ามัธยฐาน (median) ของข้อมูลชุดนั้น
ความหมายทางสถิติของค่ามัธยฐาน
ค่ามัธยฐานคือตัวเลขที่อยู่ตรงกลางของรายการตัวเลขที่จัดเรียงแล้ว (จากน้อยไปมากหรือมากไปน้อย) และมักอธิบายลักษณะข้อมูลได้ดีกว่าค่าเฉลี่ย (average)
แนวทางการแก้ปัญหา
ขั้นแรก ให้จัดเรียงอาร์เรย์ หากจำนวนสมาชิกเป็นเลขคู่ จะต้องมีตรรกะเพิ่มเติมเพื่อจัดการกับตัวเลขสองตัวที่อยู่ตรงกลาง โดยจะคืนค่าเฉลี่ยของสองตัวเลขนั้น
ตัวอย่างโค้ด
const arr = [4, 6, 2, 45, 2, 78, 5, 89, 34, 6];
const findMedian = (arr = []) => {
const sorted = arr.slice().sort((a, b) => a - b);
if (sorted.length % 2 === 0) {
const first = sorted[sorted.length / 2 - 1];
const second = sorted[sorted.length / 2];
return (first + second) / 2;
} else {
const mid = Math.floor(sorted.length / 2);
return sorted[mid];
}
};
console.log(findMedian(arr));
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
6