อาร์เรย์: [1,2,3,4,5,"4","12","2",6,7,"4",3,"2"]
แปลงทุกค่าเป็นตัวเลขด้วย parseInt() คำนวณค่าเฉลี่ย
ตัวอย่างโค้ด
const arr = [1,2,3,4,5,"4","12","2",6,7,"4",3,"2"];
const calculateAverage = arr => {
let sum = 0, count = 0;
for (let i = 0; i < arr.length; i++) {
const val = parseInt(arr[i]);
if (val) {
sum += val;
count++;
}
}
return (sum / count);
};
console.log(calculateAverage(arr));ผลลัพธ์
4.230769230769231
คำอธิบาย: parseInt() แปลงสตริงเป็น int ค่าที่แปลงไม่ได้ (NaN) จะเป็น falsy ถูกข้าม if (val) ไม่รวม 0 (เพราะ 0 เป็น falsy) - อาจเป็น bug ถ้ามี 0 ในข้อมูล
แก้ไข: ใช้ if (!isNaN(val)) แทน เพื่อรองรับ 0