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

การหาผลรวมสัมบูรณ์ของสมาชิกในอาร์เรย์ - JavaScript

ฟังก์ชันนี้คำนวณผลรวมของค่าสัมบูรณ์ (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 เพื่อความชัดเจนและประสิทธิภาพ