เราจำเป็นต้องเขียนฟังก์ชัน 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 ]