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

জাভাস্ক্রিপ্টে অ্যারেতে বিজোড় বার আবৃত্ত হয়েছে এমন উপাদান সরানো


মনে করুন, আমাদের একটি সংখ্যার অ্যারে আছে —

const arr = [1, 6, 3, 1, 3, 1, 6, 3];

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

উদাহরণ,

উপরের অ্যারেতে 1 এবং 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. জাভাস্ক্রিপ্টে অ্যারেতে প্রথম নন-কনsekutিভ নম্বর খুঁজে বের করা

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