কম্পিউটার

নেস্টেড জাভাস্ক্রিপ্ট অবজেক্টে সমস্ত ডুপ্লিকেট মান তালিকাভুক্ত করুন


ধরুন, আমাদের কাছে একটি নেস্টেড অবজেক্ট আছে যাতে কিছু পোষা প্রাণী সম্পর্কে ডেটা রয়েছে −

const pets = {
   owner1: 'Frank',
   owner2: 'Curly',
   owner3: 'Maurice',
   dogs: {
      terriers: {
         name1: 'Fido',
         name2: 'Woofy',
         name3: {
            goodDog: 'Frank',
            badDog: 'Judas',
         }
      },
      poodles: {
         name1: 'Curly',
         name2: 'Fido',
      },
   },
};

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই ধরনের একটি বস্তুতে নেয়।

ফাংশনটি অবজেক্টে বিদ্যমান সমস্ত ডুপ্লিকেট মানগুলি সনাক্ত করবে এবং তারপরে ফাংশনটি এমন একটি অ্যারে ফিরিয়ে দেবে যাতে অবজেক্টের সমস্ত ডুপ্লিকেট মান রয়েছে৷

সুতরাং, এই বস্তুর জন্য, আউটপুট −

হওয়া উচিত
const output = ['Frank', 'Curly', 'Fido'];

উদাহরণ

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

const pets = {
   owner1: 'Frank',
   owner2: 'Curly',
   owner3: 'Maurice',
   dogs: {
      terriers: {
         name1: 'Fido',
         name2: 'Woofy',
         name3: {
            goodDog: 'Frank',
            badDog: 'Judas',
         }
      },
      poodles: {
         name1: 'Curly',
         name2: 'Fido',
      },
   },
};
const recursiveSearch = (obj, map = {}, res = []) => {
   Object.keys(obj).forEach(key => {
      if(typeof obj[key] === "object"){
         return recursiveSearch(obj[key], map, res);
      };
      map[obj[key]] = (map[obj[key]] || 0) + 1;
      if(map[obj[key]] === 2){
         res.push(obj[key]);
      }
   });
   return res;
};
console.log(recursiveSearch(pets));

আউটপুট

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

[ 'Frank', 'Curly', 'Fido' ]

  1. অন্য অবজেক্টে জাভাস্ক্রিপ্ট অবজেক্টের বৈশিষ্ট্যগুলি কীভাবে নকল করবেন?

  2. জাভাস্ক্রিপ্টে গভীরভাবে নেস্টেড মানগুলি নিরাপদে অ্যাক্সেস করা

  3. জাভাস্ক্রিপ্ট ব্যবহার করে অ্যারেতে নেস্টেড অবজেক্টের মানের সমষ্টি

  4. কিভাবে গতিশীলভাবে জাভাস্ক্রিপ্ট অবজেক্ট মান সেট করবেন?