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

JavaScript में ऑब्जेक्ट को पुनरावर्ती रूप से समतल करना


हमें एक फ़ंक्शन लिखना है जो निम्नलिखित परिवर्तन करता है:

यदि इनपुट ऑब्जेक्ट है:

const input = {
  a: 0,
  b: {x: {y: 1, z: 2}},
  c: 3
};

तो फ़ंक्शन का आउटपुट होना चाहिए:

const output = {
  a: 0,
  'b.x.y': 1,
  'b.x.z': 2,
  c: 3
}

हमें मूल रूप से एक नेस्टेड ऑब्जेक्ट को समतल करने वाला फ़ंक्शन लिखना है। हम इसे पुनरावृत्ति के माध्यम से करेंगे:

उदाहरण

const obj = {
  a: 1,
  b: {x: {y: 1, z: 2}},
  c: 3
};

const obj1 = {
  a: 0,
  b: 0,
  c: 0
};

const object = { a: 0, b: { x: { y: 1, z: 2 } }, c: 3 };

const stringifyKeys = (obj, str = '', fresh = {}) => {
  const keys = Object.keys(obj);
  for (let i = 0; i < keys.length; i++) {
    if (typeof obj[keys[i]] === "object" && !Array.isArray(obj[keys[i]]) && obj[keys[i]]) {
      stringifyKeys(obj[keys[i]], str + `${keys[i]}.`, fresh);
    } else {
      fresh[str + keys[i]] = obj[keys[i]];
    }
  }
  return fresh;
};

console.log(stringifyKeys(obj));
console.log(stringifyKeys(object));
console.log(stringifyKeys(obj1));

आउटपुट

कंसोल में आउटपुट होगा:

{ a: 1, 'b.x.y': 1, 'b.x.z': 2, c: 3 }
{ a: 0, 'b.x.y': 1, 'b.x.z': 2, c: 3 }
{ a: 0, b: 0, c: 0 }

  1. JavaScript में Blob ऑब्जेक्ट JavaScript में Blob ऑब्जेक्ट

    Blob ऑब्जेक्ट एक अपरिवर्तनीय (immutable) ऑब्जेक्ट को दर्शाता है जिसका उपयोग कच्चे डेटा (raw data) को प्रस्तुत करने के लिए किया जाता है। Blob में size और mime type प्रॉपर्टी होती हैं, ठीक वैसे ही जैसे किसी फाइल में होती हैं। File, Blob से व्युत्पन्न (derived) है और Blob का उपयोग उन स्थानों पर किया जा

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

    RegExp ऑब्जेक्ट का उपयोग टेक्स्ट में पैटर्न मिलान, खोज और टेक्स्ट के भाग को निकालने के लिए किया जाता है। RegExp ऑब्जेक्ट को या तो RegExp कंस्ट्रक्टर या लिटरल सिंटैक्स का उपयोग करके बनाया जा सकता है। जावास्क्रिप्ट में RegExp ऑब्जेक्ट के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html la

  1. जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र

    एक ऑब्जेक्ट इनिशियलाइज़र एक एक्सप्रेशन है जो हमें नए बनाए गए ऑब्जेक्ट को इनिशियलाइज़ करने की अनुमति देता है। यह एक ऑब्जेक्ट के प्रॉपर्टी नामों और संबंधित मानों के शून्य या अधिक जोड़ों की कॉमा-सेपरेटेड सूची है जो कर्ली ब्रेसेस {} में संलग्न होती है। जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र के लिए निम