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

জাভাস্ক্রিপ্টে এলিমেন্টের ফ্রিকোয়েন্সি অনুযায়ী অ্যারে সাজানো

সমস্যা

একটি সংখ্যার অ্যারে arr দেওয়া আছে, যাতে ডুপ্লিকেট থাকতে পারে। অ্যারেটিকে এমনভাবে সাজাতে হবে যাতে কম ফ্রিকোয়েন্সি वाले এলিমেন্টগুলো আগে থাকে, তারপর ক্রমবর্ধমান ফ্রিকোয়েন্সি অনুযায়ী বাকিগুলো। যদি ফ্রিকোয়েন্সি সমান হয়, তবে ছোট সংখ্যাটি আগে থাকবে।

উদাহরণ:

ইনপুট

const arr = [5, 4, 5, 4, 2, 1, 12];

আউটপুট

const output = [1, 2, 12, 4, 4, 5, 5];

ব্যাখ্যা

১, ২, ১২ প্রতিটি একবার করে এসে ক্রমবর্ধমানভাবে সাজানো হয়েছে। ৪ এবং ৫ দুইবার করে এসেছে, তাই তারা পরে থাকে।

উদাহরণ কোড

const arr = [5, 4, 5, 4, 2, 1, 12]; const sortByAppearance = (arr = []) => {   arr.sort((a, b) => a - b);   const res = [];   const searched = {};   const countAppearance = (list, target) => {     searched[target] = true;     let count = 0;     let index = list.indexOf(target);     while(index !== -1){       count++;       list.splice(index, 1);       index = list.indexOf(target);     };     return count;   };   const map = [];   arr.forEach(el => {     if(!searched.hasOwnProperty(el)){       map.push([el, countAppearance(arr.slice(), el)]);     };   });   map.sort((a, b) => a[1] - b[1]);   map.forEach(([num, freq]) => {     while(freq){       res.push(num);       freq--;     }   });   return res; }; console.log(sortByAppearance(arr));

আউটপুট

[1, 2, 12, 4, 4, 5, 5]
  1. জাভাস্ক্রিপ্টে এলিমেন্টের ফ্রিকোয়েন্সি বেড়ানোর ক্রমে অ্যারে সর্ট করা

  2. জাভাস্ক্রিপ্টে অ্যারে-এর বিষম সর্টিং

  3. জাভাস্ক্রিপ্টে অ্যারে এলিমেন্টে সাধারণ অক্ষর (ডুপ্লিকেট সহ) খুঁজে বের করা

  4. জাভাস্ক্রিপ্টে অ্যারে একদম কমপক্ষে একটি এলিমেন্ট বদলে ক্রমবর্ধমান করা যায় কিনা