কম্পিউটার

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


ধরা যাক, আমাদের কাছে একটি অবজেক্ট আছে যার সাথে অন্যান্য অবজেক্ট এর প্রোপার্টি মান, এটি 2-3 লেভেলে বা আরও বেশি।

এখানে নমুনা বস্তু -

const people = {
   Ram: {
      fullName: 'Ram Kumar',
      details: {
         age: 31,
         isEmployed: true
      }
   },
   Sourav: {
      fullName: 'Sourav Singh',
      details: {
         age: 22,
         isEmployed: false
      }
   },
   Jay: {
      fullName: 'Jay Grewal',
      details: {
         age: 26,
         isEmployed: true
      }
   }
}

আমাদের কাজ হল এমন একটি ফাংশন লেখা যা এই অবজেক্ট এবং একটি স্ট্রিংকে গ্রহণ করে, স্ট্রিংটিকে কী হিসাবে পুরো অবজেক্টটি অনুসন্ধান করে এবং একটি অ্যারে প্রদান করে যাতে স্ট্রিংয়ের সাথে মিলে যাওয়া সমস্ত কীগুলির মান রয়েছে

চলুন ফাংশনটিকে recursiveSearch() বলি, এই পরিস্থিতি মোকাবেলার সবচেয়ে উপযুক্ত উপায় হবে, নেস্টিং দেওয়া।

সুতরাং, এই ফাংশনের জন্য পূর্ণ কোড হবে recursiveSearch() -

উদাহরণ

const people = {
   Ram: {
      fullName: 'Ram Kumar',
      details: {
         age: 31,
         isEmployed: true
      }
   },
   Sourav: {
      fullName: 'Sourav Singh',
      details: {
         age: 22,
         isEmployed: false
      }
   },
   Jay: {
      fullName: 'Jay Grewal',
      details: {
         age: 26,
         isEmployed: true
      }
   }
}
const recursiveSearch = (obj, searchKey, results = []) => {
   const r = results;
   Object.keys(obj).forEach(key => {
      const value = obj[key];
      if(key === searchKey && typeof value !== 'object'){
         r.push(value);
      }else if(typeof value === 'object'){
         recursiveSearch(value, searchKey, r);
      }
   });
   return r;
};
console.log(recursiveSearch(people, 'age'));

আউটপুট

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

[ 31, 22, 26 ]

উপরের ফাংশনে, প্রথমে আমরা মূল অবজেক্টের উপর পুনরাবৃত্তি করি এবং যখনই আমরা অ্যানেস্টিংয়ের সম্মুখীন হই তখনই আমরা পছন্দসই কীটির জন্য সাব অবজেক্ট অনুসন্ধানের উপর পুনরাবৃত্তি করি, যদি আমরা পছন্দসই কীটি খুঁজে পাই, আমরা অবিলম্বে ফলাফল অ্যারেতে এবং এর মান রেকর্ড করি। শেষ যখন আমরা শেষ করি, আমরা ফলাফল অ্যারে ফেরত দিই যাতে কাঙ্খিত মান রয়েছে।

এই ফাংশনের সময় জটিলতা হল O(mn) যেখানে মূল বস্তুর ভিতরে চাইল্ড অবজেক্টের সংখ্যা এবং m হল নেস্টিংয়ের গভীরতম স্তর৷


  1. জাভাস্ক্রিপ্ট অ্যারেবাফার অবজেক্ট

  2. জাভাস্ক্রিপ্ট প্রক্সি() অবজেক্ট

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

  4. JavaScript-এ Object.keys().map() VS Array.map()