আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা n সংখ্যক অ্যারে থেকে m সংখ্যক উপাদান নিয়ে কম্বিনেশন জেনারেট করবে।
উদাহরণস্বরূপ - নিচের ডেটা বিবেচনা করুন -
const arr = [ [0,1], [0,1,2,3], [0,1,2] ]
৩টি সাব-অ্যারে, প্রতিটিতে ভিন্ন সংখ্যক উপাদান।
আমরা চাই প্রতিটি অ্যারে থেকে একটি আইটেম নিয়ে সব কম্বিনেশন পাওয়া।
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 // এবং així সারিবদ্ধে
যদি অ্যারের সংখ্যা ফিক্সড হতো, হার্ড-কোডেড ইমপ্লিমেন্টেশন সহজ হতো। কিন্তু অ্যারের সংখ্যা পরিবর্তনশীল -
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] ]