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

ทุกชุดการรวมผลรวมของอาร์เรย์ใน JavaScript

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขเป็นอาร์กิวเมนต์แรก และตัวเลข n เป็นอาร์กิวเมนต์ที่สอง (n จะน้อยกว่าหรือเท่ากับความยาวอาร์เรย์เสมอ)

ฟังก์ชันควรคืนค่าอาร์เรย์ของผลรวมของทุกองค์ประกอบของทุก subarray ที่เป็นไปได้ที่มีความยาว 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 ]