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

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
    }
  }
}

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

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

तो इस फ़ंक्शन recursiveSearch() के लिए पूरा कोड होगा:

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'));

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

इस फ़ंक्शन की समय जटिलता O(mn) है जहां n मुख्य ऑब्जेक्ट के अंदर चाइल्ड ऑब्जेक्ट्स की संख्या है और m नेस्टिंग का सबसे गहरा स्तर है।

इस कोड के लिए कंसोल में आउटपुट:

[ 31, 22, 26 ]

  1. JavaScript का उपयोग करके URL ऑब्जेक्ट कैसे बनाएं? JavaScript का उपयोग करके URL ऑब्जेक्ट कैसे बनाएं?

    JavaScript का उपयोग करके URL ऑब्जेक्ट बनाने का निम्नलिखित कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>URL Obje

  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. जावास्क्रिप्ट में Object.keys().map() बनाम Array.map() जावास्क्रिप्ट में Object.keys().map() बनाम Array.map()

    जावास्क्रिप्ट में Object.keys().map() और Array.map() दिखाने का कोड निम्नलिखित है - उदाहरण <!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>