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',
        },
    },
};

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसा एक ऑब्जेक्ट लेता है।

फ़ंक्शन को ऑब्जेक्ट में मौजूद सभी डुप्लिकेट मानों का पता लगाना चाहिए, और फिर फ़ंक्शन को एक सरणी लौटानी चाहिए जिसमें ऑब्जेक्ट से सभी डुप्लिकेट मान हों।

तो, इस ऑब्जेक्ट के लिए, आउटपुट होना चाहिए -

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

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

  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>

  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> &nbs