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

บวกและคูณสลับกันในอาร์เรย์ (Alternate Add Multiply) - JavaScript

คำนวณผลรวมของการคูณคู่ติดกัน: index 0×1 + 2×3 + 4×5 + ...

ตัวอย่าง

[1, 2, 4, 1, 2, 3, 4, 3]
→ 1×2 + 4×1 + 2×3 + 4×3
→ 2 + 4 + 6 + 12 = 24

ตัวอย่างโค้ด

const arr = [1, 2, 4, 1, 2, 3, 4, 3];

const alternateOperation = arr => {
  const productArr = arr.reduce((acc, val, ind) => {
    if (ind % 2 === 1) return acc;
    acc.push(val * (arr[ind + 1] || 1));
    return acc;
  }, []);
  
  return productArr.reduce((acc, val) => acc + val);
};

console.log(alternateOperation(arr));

ผลลัพธ์

24

วิธีแบบลูป for (เข้าใจง่ายกว่า)

const alternateOperation = arr => {
  let sum = 0;
  for (let i = 0; i < arr.length; i += 2) {
    sum += arr[i] * (arr[i + 1] || 1);
  }
  return sum;
};

จัดการกรณีอาร์เรย์คี่ (odd length) ด้วย || 1 คูณตัวสุดท้ายด้วย 1