เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอาร์กิวเมนต์แรกและตัวเลขเดียวเป็นอาร์กิวเมนต์ที่สอง
ฟังก์ชันควรเลือกองค์ประกอบดังกล่าวจากอาร์เรย์ที่เมื่อเพิ่มเข้าไปจะให้ผลรวมที่ระบุโดยอาร์กิวเมนต์ที่สองของอาร์เรย์ ฟังก์ชันควรส่งคืนอาร์เรย์ของอาร์เรย์ย่อยของตัวเลขทั้งหมดที่เพิ่มเข้ามาจะให้ผลรวมที่ต้องการ
โปรดทราบว่าลำดับไม่สำคัญ และหากจำเป็น เรามีเสรีภาพในการใช้ตัวเลขมากกว่าหนึ่งตัวเพื่อสร้างผลรวม
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตและผลรวมเป็น −
const arr =[14, 6, 10];const sum =40;
จากนั้นผลลัพธ์ควรเป็น −
เอาต์พุตคอนสตรัค =[ [ 14, 14, 6, 6 ], [ 14, 6, 10, 10 ], [ 6, 6, 6, 6, 6, 10 ], [ 10, 10, 10, 10 ] ];
ตัวอย่าง
const arr =[14, 6, 10];const sum =40;const findSum =(arr, ผลรวม) => { const res =[]; การค้นหา const =(ดัชนี ส่วน =[]) => { const s =part.reduce ((a, b) => a + b, 0); ถ้า (s ===ผลรวม){ res.push(ส่วนหนึ่ง) }; ถ้า (s>=ผลรวม || ดัชนี>=arr.length){ return; }; ค้นหา(ดัชนี part.concat(arr[ดัชนี])); ค้นหา (ดัชนี + 1 ส่วน); }; ค้นหา(0); return res;}console.log(findSum(arr, sum));
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>[ [ 14, 14, 6, 6], [ 14, 6, 10, 10 ], [ 6, 6, 6, 6, 6, 10 ], [ 10, 10, 10, 10 ]]ก่อน>