हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में शाब्दिक की एक सरणी और दूसरे तर्क के रूप में एक संख्या लेता है।
फ़ंक्शन को ऐसे सभी सरणियों की एक सरणी का निर्माण करना चाहिए जिनकी लंबाई दूसरे तर्क द्वारा निर्दिष्ट संख्या के बराबर है और इसमें इनपुट सरणी के तत्वों के सभी संभावित क्रमपरिवर्तन शामिल हैं।
उदाहरण के लिए -
अगर इनपुट ऐरे और नंबर हैं -
const arr = ['k', 5]; const num = 3;
तब आउटपुट होना चाहिए -
const output = [ [ 'k', 'k', 'k' ], [ 'k', 'k', 5 ], [ 'k', 5, 'k' ], [ 'k', 5, 5 ], [ 5, 'k', 'k' ], [ 5, 'k', 5 ], [ 5, 5, 'k' ], [ 5, 5, 5 ] ];
उदाहरण
निम्नलिखित कोड है -
const arr = ['k', 5]; const num = 3; const allPairs = (arr = [], num) => { const res = []; if(num === 0){ return [[]]; } const subResult = allPairs(arr, num - 1); for(let el of arr){ for(let sub of subResult){ res.push([el].concat(sub)); } } return res; } console.log(allPairs(arr, num));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
[ [ 'k', 'k', 'k' ], [ 'k', 'k', 5 ], [ 'k', 5, 'k' ], [ 'k', 5, 5 ], [ 5, 'k', 'k' ], [ 5, 'k', 5 ], [ 5, 5, 'k' ], [ 5, 5, 5 ] ]