কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে n আলাদা অ্যারে থেকে ক্যারেক্টার নিয়ে রিপিট ছাড়া স্ট্রিং বানানো

ধরুন, 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. জাভাস্ক্রিপ্ট দিয়ে ফিল্টার লিস্ট (Filter List) তৈরি করা

  2. সিএসএস এবং জাভাস্ক্রিপ্ট দিয়ে টু-ডু লিস্ট তৈরি করা

  3. জাভাস্ক্রিপ্ট দিয়ে লিস্ট আইটেম বন্ধ (Closeable) করা

  4. জাভাস্ক্রিপ্টে স্ট্রিং ফরম্যাটিং করে একই ক্যারেক্টার আলাদা করা