কম্পিউটার

জাভাস্ক্রিপ্টের একটি অ্যারে থেকে যেকোনো সংখ্যা/উপাদানের বিজোড় ঘটনা অপসারণ করা


ধরুন, আমাদের কাছে এই −

এর মত সংখ্যার একটি অ্যারে আছে
const arr = [1, 6, 3, 1, 3, 1, 6, 3];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র আর্গুমেন্টের মতো একটি অ্যারে নেয়। তারপরে ফাংশনটি অ্যারেতে এমন সমস্ত সংখ্যার সন্ধান করা উচিত যা বিজোড় সংখ্যক বার প্রদর্শিত হয় (শুধুমাত্র একবার ব্যতীত)।

উদাহরণস্বরূপ,

উপরের অ্যারেতে, সংখ্যা 1 এবং 3 উভয়ই 3 বার (বিজোড়) জন্য প্রদর্শিত হবে, তাই আমাদের ফাংশনটি এই উভয় সংখ্যার তৃতীয় ঘটনাটি সরিয়ে দেবে।

এবং আউটপুট অ্যারে −

এর মত হওয়া উচিত
const output = [1, 6, 3, 1, 3, 6];

আমরা প্রতিটি সংখ্যার ঘটনার ট্র্যাক রাখার জন্য একটি হ্যাশম্যাপ প্রস্তুত করব, এবং শেষ পর্যন্ত বিজোড় সংখ্যক বার প্রদর্শিত সেই সংখ্যাটির শেষ ঘটনাটি মুছে ফেলার জন্য আমরা মানচিত্রের উপর পুনরাবৃত্তি করব৷

আমাদের মানচিত্রের প্রতিটি কী একটি অ্যারের মান ধারণ করবে, যার প্রথম উপাদানটি সেই উপাদানটি কতবার উপস্থিত হয়েছে তার সংখ্যা হবে এবং দ্বিতীয়টি হবে শেষ সূচক যেখানে এটি উপস্থিত হয়েছে৷

উদাহরণ

এর জন্য কোড হবে −

const arr = [1, 6, 3, 1, 3, 1, 6, 3];
const removeOddOccurence = (arr =[]) => {
   // keeping the original array unaltered
   const copy = arr.slice();
   const map = {};
   arr.forEach((num, ind) => {
      if(map.hasOwnProperty(num)){
         map[num][0]++;
         map[num][1] = ind;
      }else{
         map[num] = [1, ind];
      };
   });
   for(const key in map){
      const [freq, index] = map[key];
      if(freq !== 1 && freq % 2 === 1){
         copy.splice(index, 1, '');
      };
   };
   return copy.filter(el => el !== '');
};
console.log(removeOddOccurence(arr));

আউটপুট

এবং কনসোলে আউটপুট হবে −

[1, 6, 3, 1, 3, 6]

  1. জাভাস্ক্রিপ্টে অ্যারের মধ্যে ক্ষুদ্রতম সংখ্যার অঙ্কের যোগফল পরীক্ষা করা হচ্ছে

  2. জাভাস্ক্রিপ্ট ব্যবহার করে সংখ্যা থেকে অঙ্কের বিপরীত অ্যারে

  3. JavaScript-এ একটি অ্যারেতে প্রথম অ-পরপর নম্বর খোঁজা

  4. জাভাস্ক্রিপ্টে অ্যারে থেকে শুধুমাত্র বিজোড় সংখ্যা রিটার্ন করা হচ্ছে