เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของ Numbers เป็นอาร์กิวเมนต์แรกและตัวเลข โดยพูดว่า n เป็นอาร์กิวเมนต์ที่สอง ตัวเลข n จะน้อยกว่าหรือเท่ากับความยาวของอาร์เรย์เสมอ
ฟังก์ชันของเราควรคืนค่าอาร์เรย์ของผลรวมขององค์ประกอบทั้งหมดของอาร์เรย์ย่อยที่เป็นไปได้ทั้งหมดที่มีความยาว n จากอาร์เรย์ดั้งเดิม
ตัวอย่างเช่น หากอินพุตคือ −
const arr = [2, 6, 4]; const n = 2;
จากนั้นผลลัพธ์ควรเป็น −
const output = [8, 10, 6];
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [2, 6, 4]; const n = 2; const buildCombinations = (arr, num) => { const res = []; let temp, i, j, max = 1 << arr.length; for(i = 0; i < max; i++){ temp = []; for(j = 0; j < arr.length; j++){ if (i & 1 << j){ temp.push(arr[j]); }; }; if(temp.length === num){ res.push(temp.reduce(function (a, b) { return a + b; })); }; }; return res; } console.log(buildCombinations(arr, n));
ผลลัพธ์
เอาต์พุตในคอนโซล −
[ 8, 6, 10 ]