Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

बिना दोहराए जाने वाले वर्ण n वर्णों की अलग सूची के साथ एक स्ट्रिंग कैसे बनाएं? जावास्क्रिप्ट में


मान लीजिए, हम एकल वर्णों की अलग-अलग सरणी बनाते हैं। हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो उन सभी सरणियों को लेता है।

फ़ंक्शन को ऐसे सभी संभावित स्ट्रिंग्स का निर्माण करना चाहिए जो -

  • प्रत्येक सरणी से ठीक एक अक्षर होता है

  • कोई दोहराए जाने वाला वर्ण नहीं होना चाहिए (क्योंकि सरणियों में सामान्य तत्व हो सकते हैं)

इस समस्या के उद्देश्य के लिए, हम इन तीन सरणियों पर विचार करेंगे, लेकिन हम अपना कार्य इस तरह लिखेंगे कि यह सरणियों की चर संख्या के साथ अच्छी तरह से काम करे -

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'
]

  1. जावास्क्रिप्ट के साथ फ़िल्टर सूची कैसे बनाएं?

    जावास्क्रिप्ट के साथ एक फिल्टर सूची बनाने के लिए, कोड इस प्रकार है - उदाहरण <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>    * {       box-sizing: border-box; &nb

  1. CSS और JavaScript के साथ टू-डू लिस्ट कैसे बनाएं?

    सीएसएस और जावास्क्रिप्ट के साथ एक टू-डू सूची बनाने के लिए, कोड इस प्रकार है - उदाहरण <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>    ht

  1. जावास्क्रिप्ट के साथ सूची आइटम कैसे बंद करें?

    जावास्क्रिप्ट के साथ सूची आइटम को बंद करने के लिए, कोड इस प्रकार है - उदाहरण body { font-family:Segoe UI , ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } * {बॉक्स-साइज़िंग:बॉर्डर-बॉक्स; } उल { सूची-शैली-प्रकार:कोई नहीं; पैडिंग:0; मार्जिन:0; } उल ली {बॉर्डर:1px सॉलिड आरजीबी(221, 221, 221); पृष्ठभूमि-रंग:#