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

डीप सर्च JSON ऑब्जेक्ट JavaScript

<घंटा/>

मान लीजिए कि हमारे पास निम्नलिखित नेस्टेड JSON ऑब्जेक्ट है -

const obj = {
   id: 1,
   title: 'hello world',
   child: {
      id: null,
      title: 'foobar',
      child: {
         id: null,
         title: 'i should be in results array '
      }
   },
   foo: {
      id: null,
      title: 'i should be in results array too!' },
      deep: [
      {
         id: null,
         value: 'yo'
      }, {
         id: null,
         value: 'yo2'
      }
   ]
};

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो एक ऐसी वस्तु को पहले तर्क के रूप में लेता है, एक कुंजी स्ट्रिंग को दूसरे के रूप में और एक मान स्ट्रिंग को तीसरे तर्क के रूप में लेता है। फ़ंक्शन को JSON ऑब्जेक्ट में दिए गए कुंजी मान युग्म की जांच करनी चाहिए।

यदि कोई वस्तु मौजूद है तो फ़ंक्शन को ऐसी सभी वस्तुओं की एक सरणी वापस करनी चाहिए।

इस समस्या को हल करने के लिए हम निम्नलिखित दृष्टिकोण का उपयोग करेंगे -

  • यदि खोजा गया आइटम गलत है या यदि यह कोई वस्तु नहीं है, तो हम वापस आ जाते हैं
  • यदि कुंजी और मान मेल खाते हैं, तो हम वास्तविक वस्तु को परिणाम सेट में जोड़ देते हैं,
  • हम कुंजियाँ प्राप्त करते हैं और गुणों पर पुनरावृति करते हैं और फ़ंक्शन को फिर से कॉल करते हैं।

अंत में, हम एकत्रित वस्तुओं के साथ सरणी लौटाते हैं।

उदाहरण

const obj = {
   id: 1,
   title: 'hello world',
   child: {
      id: null,
      title: 'foobar',
      child: {
         id: null,
         title: 'i should be in results array '
      }
   },
   foo: {
      id: null,
      title: 'i should be in results array too!' },
      deep: [
      {
         id: null, value: 'yo'
      }, {
         id: null, value: 'yo2'
      }
   ]
};
const findObject = (obj = {}, key, value) => {
   const result = [];
   const recursiveSearch = (obj = {}) => {
      if (!obj || typeof obj !== 'object') { return;
   };
   if (obj[key] === value){
      result.push(obj);
   };
   Object.keys(obj).forEach(function (k) {
      recursiveSearch(obj[k]);
   });
} recursiveSearch(obj);
return result;
} console.log(findObject(obj, 'id', null));

आउटपुट

[
   {
      id: null,
      title: 'foobar',
      child: {
         id: null, title: 'i should be in results array '
      }
   },
   {
         id: null, title: 'i should be in results array '
   }, {
         id: null, title: 'i should be in results array too!'
      }, {
      id: null, value: 'yo'
      }, { id: null, value: 'yo2'
   }
]

  1. JSON टेक्स्ट को जावास्क्रिप्ट JSON ऑब्जेक्ट में कैसे बदलें?

    JSON पार्स () विधि का उपयोग JSON टेक्स्ट को JavaScript ऑब्जेक्ट में बदलने के लिए किया जाता है। JSON टेक्स्ट को JavaScript JSON ऑब्जेक्ट में बदलने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta n

  1. जावास्क्रिप्ट में ऑब्जेक्ट डी-स्ट्रक्चरिंग।

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

  1. जावास्क्रिप्ट में वीकमैप ऑब्जेक्ट।

    WeakMap ऑब्जेक्ट में की-वैल्यू पेयर तत्वों के रूप में होता है जहां कुंजी एक ऑब्जेक्ट होनी चाहिए और मान कोई भी आदिम मान या ऑब्जेक्ट हो सकता है। WeakMap में चाबियों के रूप में उपयोग की जाने वाली वस्तुएं कूड़ा करकट होती हैं यदि उनके पास उनका कोई संदर्भ नहीं है। जावास्क्रिप्ट में WeakMap ऑब्जेक्ट के लि