हमें एक JavaScript फ़ंक्शन लिखने की आवश्यकता है जो n संख्या में सरणियों से संयोजन उत्पन्न करता है जिसमें m तत्वों की संख्या होती है।
उदाहरण के लिए -
इस डेटा पर विचार करें -
const arr = [ [0,1], [0,1,2,3], [0,1,2] ]
3 उप सरणियाँ, उनमें विभिन्न तत्वों की संख्या के साथ।
हम जो करना चाहते हैं वह प्रत्येक सरणी से एक आइटम को मिलाकर सभी संयोजन प्राप्त करना है।
उदाहरण के लिए -
0,0,0 // item 0 from array 0, item 0 from array 1, item 0 from array 2 0,0,1 0,0,2 0,1,0 0,1,1 0,1,2 0,2,0 0,2,1 0,2,2
और इसी तरह।
यदि सरणियों की संख्या तय की गई थी, तो हार्ड-कोडित कार्यान्वयन करना आसान होगा। लेकिन सरणियों की संख्या भिन्न हो सकती है -
const arr1 = [[0,1], [0,1]]; const arr2 = [[0,1,3,4], [0,1], [0], [0,1]];
उदाहरण
इसके लिए कोड होगा -
const arr = [
[0,1],
[0,1,2,3],
[0,1,2]
]
const combineAll = (array) => {
const res = [];
let max = array.length−1;
const helper = (arr, i) => {
for (let j=0, l=array[i].length; j<l; j++) {
let copy = arr.slice(0);
copy.push(array[i][j]);
if (i==max)
res.push(copy);
else
helper(copy, i+1);
};
};
helper([], 0);
return res;
};
console.log(combineAll(arr)); और कंसोल में आउटपुट होगा -
[ [ 0, 0, 0 ], [ 0, 0, 1 ], [ 0, 0, 2 ], [ 0, 1, 0 ], [ 0, 1, 1 ], [ 0, 1, 2 ], [ 0, 2, 0 ], [ 0, 2, 1 ], [ 0, 2, 2 ], [ 0, 3, 0 ], [ 0, 3, 1 ], [ 0, 3, 2 ], [ 1, 0, 0 ], [ 1, 0, 1 ], [ 1, 0, 2 ], [ 1, 1, 0 ], [ 1, 1, 1 ], [ 1, 1, 2 ], [ 1, 2, 0 ], [ 1, 2, 1 ], [ 1, 2, 2 ], [ 1, 3, 0 ], [ 1, 3, 1 ], [ 1, 3, 2 ] ]