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

การหาผลรวมที่ต้องการของสมาชิกในอาร์เรย์ด้วย JavaScript

สมมติว่าเรามีอาร์เรย์ตัวเลข:

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

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ดังกล่าวเป็นอาร์กิวเมนต์แรก อาร์กิวเมนต์ที่สองคือตัวเลขแทนผลรวมที่ต้องการ (sum) และอาร์กิวเมนต์ที่สามคือตัวเลขแทนจำนวนตัวเลขที่ต้องบวกกันได้ผลรวมที่ต้องการ (โดยไม่ซ้ำสมาชิก) เรียกว่า num

ฟังก์ชันต้องคืนค่าจำนวนกลุ่มทั้งหมดที่มีผลรวมและความยาวตามที่ต้องการ

ตัวอย่าง

ถ้าค่านำเข้าคือ:

const arr = [1, 2, 1, 3, 2];
const sum = 3;
const num = 2;

ผลลัพธ์ควรเป็น:

const output = 2;

เพราะกลุ่มที่เป็นไปได้คือ 1,2 และ 1,2

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

const arr = [1, 2, 1, 3, 2];
const sum = 3;
const num = 2;
const findGroups = (arr = [], sum = 1, num = 1) => {
  let count = 0;
  for(let i = 0; i < arr.length; i++) {
    let part = arr.slice(0 + i, num + i);
    const partSum = part.reduce((acc, val) => acc + val);
    if(partSum === sum) {
      count++;
    }
  }
  return count;
};
console.log(findGroups(arr, sum, num));

ผลลัพธ์

2