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

नेस्टेड JavaScript ऑब्जेक्ट में सभी डुप्लीकेट मानों की सूची बनाएं

<घंटा/>

मान लीजिए, हमारे पास एक नेस्टेड ऑब्जेक्ट है जिसमें इस तरह के कुछ पालतू जानवरों के बारे में डेटा है -

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. जावास्क्रिप्ट में डीप नेस्टेड वैल्यूज को सुरक्षित रूप से एक्सेस करना

    आप किसी भी स्तर पर सुरक्षित रूप से गुण प्राप्त करने के लिए लॉश की विधि का उपयोग कर सकते हैं। प्रथम-स्तरीय गुण प्राप्त करना बहुत सीधा है। नेस्टेड संपत्ति का उपयोग मुश्किल है और आपको इसके लिए लॉश जैसे परीक्षण किए गए पुस्तकालय का उपयोग करना चाहिए। आप किसी गहरे नेस्टेड ऑब्जेक्ट को निम्न तरीके से एक्सेस

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

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

  1. जावास्क्रिप्ट ऑब्जेक्ट मानों को गतिशील रूप से कैसे सेट करें?

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