ধরুন, আমরা একক অক্ষরের আলাদা অ্যারে এন। আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই সমস্ত অ্যারেতে নেয়।
ফাংশনটি এমন সমস্ত সম্ভাব্য স্ট্রিং তৈরি করা উচিত যা −
-
প্রতিটি অ্যারে থেকে ঠিক একটি অক্ষর রয়েছে
-
কোনো পুনরাবৃত্তি অক্ষর থাকা উচিত নয় (যেহেতু অ্যারেতে সাধারণ উপাদান থাকতে পারে)
এই সমস্যার উদ্দেশ্যে, আমরা এই তিনটি অ্যারে বিবেচনা করব, তবে আমরা আমাদের ফাংশনটি এমনভাবে লিখব যাতে এটি পরিবর্তনশীল সংখ্যার অ্যারের সাথে ভালভাবে কাজ করে −
const arr1 = [a,b ,c,d ]; const arr2 = [e,f ,g ,a]; const arr3 = [m, n, o, g, k];
উদাহরণ
এর জন্য কোড হবে −
const arr1 = ['a','b' ,'c','d' ]; const arr2 = ['e','f' ,'g' ,'a']; const arr3 = ['m', 'n', 'o', 'g', 'k']; const allCombinations = (...arrs) => { let res = []; const reduced = arrs.reduce((acc, b) => acc.reduce((r, v) => { return r.concat(b.map(el => { return [].concat(v, el); })) }, []) ); res = reduced.filter(el => new Set(el).size === el.length); return res.map(el => el.join(' ')); }; console.log(allCombinations(arr1, arr2, arr3));
আউটপুট
এবং কনসোলে আউটপুট হবে −
[ 'a e m', 'a e n', 'a e o', 'a e g', 'a e k', 'a f m', 'a f n', 'a f o', 'a f g', 'a f k', 'a g m', 'a g n', 'a g o', 'a g k', 'b e m', 'b e n', 'b e o', 'b e g', 'b e k', 'b f m', 'b f n', 'b f o', 'b f g', 'b f k', 'b g m', 'b g n', 'b g o', 'b g k', 'b a m', 'b a n', 'b a o', 'b a g', 'b a k', 'c e m', 'c e n', 'c e o', 'c e g', 'c e k', 'c f m', 'c f n', 'c f o', 'c f g', 'c f k', 'c g m', 'c g n', 'c g o', 'c g k', 'c a m', 'c a n', 'c a o', 'c a g', 'c a k', 'd e m', 'd e n', 'd e o', 'd e g', 'd e k', 'd f m', 'd f n', 'd f o', 'd f g', 'd f k', 'd g m', 'd g n', 'd g o', 'd g k', 'd a m', 'd a n', 'd a o', 'd a g', 'd a k' ]