ฟังก์ชันนี้คำนวณผลรวมของค่าสัมบูรณ์ (absolute values) ของสมาชิกทุกตัวในอาร์เรย์ โดยไม่ใช้ฟังก์ชันในตัว (built-in) เช่น Math.abs()
ตัวอย่าง
// Input: [1, -5, -34, -5, 2, 5, 6] // |1| + |-5| + |-34| + |-5| + |2| + |5| + |6| = 1+5+34+5+2+5+6 = 58
ตัวอย่างโค้ด
const arr = [1, -5, -34, -5, 2, 5, 6];
const absoluteSum = arr => {
let res = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] < 0) {
res += arr[i] * -1; // คูณ -1 เพื่อทำให้เป็นบวก
continue;
}
res += arr[i];
}
return res;
};
console.log(absoluteSum(arr));
วิธีทันสมัยกว่า
const absoluteSum = arr => arr.reduce((sum, val) => sum + Math.abs(val), 0);
ผลลัพธ์
58
หมายเหตุ: โค้ดต้นฉบับหลีกเลี่ยง Math.abs() ตามโจทย์ แต่ในทางปฏิบัติควรใช้ built-in function เพื่อความชัดเจนและประสิทธิภาพ