हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में संख्याओं की एक सरणी और दूसरे तर्क के रूप में एक लक्ष्य योग संख्या लेता है।
फ़ंक्शन को मूल सरणी से उन सभी उप-सरणी की एक सरणी वापस करनी चाहिए जिनके तत्व लक्ष्य योग बनाने के लिए योग करते हैं। हम योग प्राप्त करने के लिए एक ही संख्या का दो बार उपयोग कर सकते हैं।
उदाहरण के लिए -
अगर इनपुट ऐरे और नंबर हैं -
const arr = [1, 2, 4]; const sum = 4;
तो आउटपुट होना चाहिए -
const output = [ [1, 1, 1, 1], [1, 1, 2], [2, 2], [4] ]
उदाहरण
const arr = [1, 2, 4]; const sum = 4; const getCombinations = (arr = [], sum) => { const result = []; const pushElement = (i, t) => { const s = t.reduce(function (a, b) { return a + b; }, 0); if (sum === s) { result.push(t); return; }; if (s > sum || i === arr.length) { return; }; pushElement(i, t.concat([arr[i]])); pushElement(i + 1, t); } pushElement(0, []); return result; }; console.log(getCombinations(arr, sum));
आउटपुट
और कंसोल में आउटपुट होगा -
[ [ 1, 1, 1, 1 ], [ 1, 1, 2 ], [ 2, 2 ], [ 4 ] ]