मान लीजिए, हम एकल वर्णों की अलग-अलग सरणी बनाते हैं। हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो उन सभी सरणियों को लेता है।
फ़ंक्शन को ऐसे सभी संभावित स्ट्रिंग्स का निर्माण करना चाहिए जो -
-
प्रत्येक सरणी से ठीक एक अक्षर होता है
-
कोई दोहराए जाने वाला वर्ण नहीं होना चाहिए (क्योंकि सरणियों में सामान्य तत्व हो सकते हैं)
इस समस्या के उद्देश्य के लिए, हम इन तीन सरणियों पर विचार करेंगे, लेकिन हम अपना कार्य इस तरह लिखेंगे कि यह सरणियों की चर संख्या के साथ अच्छी तरह से काम करे -
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' ]