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

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


मान लीजिए हमारे पास निम्नलिखित नेस्टेड 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'     }   ] };

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

यदि कोई ऐसा ऑब्जेक्ट मौजूद है तो फ़ंक्शन को ऐसे सभी ऑब्जेक्ट्स का एक ऐरे लौटाना चाहिए।

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

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

अंत में, हम एकत्रित ऑब्जेक्ट्स के साथ ऐरे लौटाते हैं।

उदाहरण

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 ऑब्जेक्ट में कैसे कन्वर्ट करें?

    परिचय JSON.parse() मेथड का उपयोग JSON टेक्स्ट (स्ट्रिंग) को जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित करने के लिए किया जाता है। यह JSON डेटा के साथ काम करने के लिए आवश्यक है जो APIs से प्राप्त होता है या स्थानीय भंडारण में संग्रहीत होता है। उदाहरण निम्न कोड JSON टेक्स्ट को जावास्क्रिप्ट JSON ऑब्जेक्ट म

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

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

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

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