Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาผลรวมขององค์ประกอบที่ต้องการในอาร์เรย์ใน JavaScript


สมมติว่าเรามีอาร์เรย์ของตัวเลขแบบนี้ -

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

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์เช่นอาร์กิวเมนต์แรก อาร์กิวเมนต์ที่สองจะเป็นตัวเลขที่แทนผลรวมที่ต้องการ ให้เราเรียกมันว่าผลรวม และอาร์กิวเมนต์ที่สามกับอาร์กิวเมนต์สุดท้ายจะเป็นตัวเลขที่แทนการนับจำนวนที่ควรบวกกับผลรวมที่ต้องการจากอาร์เรย์ (ไม่มี การซ้ำซ้อนขององค์ประกอบ) ให้เรียกตัวเลขนี้ว่า 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