Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

नेस्टेड ऑब्जेक्ट कुंजियों को पुनरावर्ती रूप से सूचीबद्ध करें जावास्क्रिप्ट

<घंटा/>

मान लीजिए, हमारे पास एक वस्तु है जिसमें अन्य वस्तुएँ इसकी संपत्ति मूल्य हैं, यह 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
      }
   }
}

हमारा काम एक फ़ंक्शन लिखना है जो इस ऑब्जेक्ट और एक स्ट्रिंग को स्वीकार करता है, पूरे ऑब्जेक्ट को उस स्ट्रिंग के लिए कुंजी के रूप में खोजता है और एक सरणी देता है जिसमें स्ट्रिंग से मेल खाने वाली सभी कुंजियों का मान होता है

आइए फ़ंक्शन को पुनरावर्ती खोज () कहते हैं, नेस्टिंग को देखते हुए, पुनरावृत्ति इस स्थिति से निपटने का सबसे उपयुक्त तरीका होगा।

तो, इस फ़ंक्शन का पूरा कोड रिकर्सिवसर्च () होगा -

उदाहरण

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. जावास्क्रिप्ट प्रॉक्सी () वस्तु

    जावास्क्रिप्ट प्रॉक्सी () ऑब्जेक्ट किसी ऑब्जेक्ट या फ़ंक्शन को लपेटता है और संपत्ति तक पहुँचने, फ़ंक्शन को लागू करने आदि जैसे मूलभूत कार्यों के लिए कस्टम क्रियाओं के लिए उपयोग किया जाता है। जावास्क्रिप्ट में प्रॉक्सी () ऑब्जेक्ट के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=

  1. जावास्क्रिप्ट का उपयोग करके ऐरे में नेस्टेड ऑब्जेक्ट मानों का योग

    जावास्क्रिप्ट का उपयोग करके नेस्टेड ऑब्जेक्ट मानों को सरणी में जोड़ने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0&

  1. Object.keys().map() VS Array.map() जावास्क्रिप्ट में

    निम्नलिखित कोड JavaScript में Object.keys().map() और Array.map() दिखा रहा है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .result,.sample {फ़ॉन्ट-आकार:18पीएक्स; फ़ॉन्ट-वजन:500; रंग:रेबेकापर्पल; } .परिणाम {रंग:लाल; }Object.keys().map() बनाम Array.map(){1