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

JavaScript में डेज़ी-चेन/डॉट नोटेशन में फ्लैट ऑब्जेक्ट को नेस्टेड ऑब्जेक्ट्स और ऐरे वाले ऑब्जेक्ट में कैसे अनफ्लैट करें?


मान लीजिए, हमारे पास ऐसा ऑब्जेक्ट है -

const obj = {   "firstName": "John",   "lastName": "Green",   "car.make": "Honda",   "car.model": "Civic",   "car.revisions.0.miles": 10150,   "car.revisions.0.code": "REV01",   "car.revisions.0.changes": "",   "car.revisions.1.miles": 20021,   "car.revisions.1.code": "REV02",   "car.revisions.1.changes.0.type": "asthetic",   "car.revisions.1.changes.0.desc": "Left tire cap",   "car.revisions.1.changes.1.type": "mechanic",   "car.revisions.1.changes.1.desc": "Engine pressure regulator",   "visits.0.date": "2015-01-01",   "visits.0.dealer": "DEAL-001",   "visits.1.date": "2015-03-01",   "visits.1.dealer": "DEAL-002" };

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

इसलिए, उपरोक्त ऐरे के लिए आउटपुट इस तरह दिखना चाहिए -

const output = {   firstName: 'John',   lastName: 'Green',   car: {     make: 'Honda',     model: 'Civic',     revisions: [       { miles: 10150, code: 'REV01', changes: ''},       { miles: 20021, code: 'REV02', changes: [         { type: 'asthetic', desc: 'Left tire cap' },         { type: 'mechanic', desc: 'Engine pressure regulator' }       ]     ]   },   visits: [     { date: '2015-01-01', dealer: 'DEAL-001' },     { date: '2015-03-01', dealer: 'DEAL-002' }   ] };

उदाहरण

const obj = {   "firstName": "John",   "lastName": "Green",   "car.make": "Honda",   "car.model": "Civic",   "car.revisions.0.miles": 10150,   "car.revisions.0.code": "REV01",   "car.revisions.0.changes": "",   "car.revisions.1.miles": 20021,   "car.revisions.1.code": "REV02",   "car.revisions.1.changes.0.type": "asthetic",   "car.revisions.1.changes.0.desc": "Left tire cap",   "car.revisions.1.changes.1.type": "mechanic",   "car.revisions.1.changes.1.desc": "Engine pressure regulator",   "visits.0.date": "2015-01-01",   "visits.0.dealer": "DEAL-001",   "visits.1.date": "2015-03-01",   "visits.1.dealer": "DEAL-002" }; const unflatten = (obj = {}) => {   const result = {};   let temp, substrings, property, i;   for (property in obj) {     substrings = property.split('.');     temp = result;     for (i = 0; i < substrings.length - 1; i++) {       if (!(substrings[i] in temp)) {         if (isFinite(substrings[i + 1])) {           temp[substrings[i]] = [];         }         else {           temp[substrings[i]] = {};         }       }       temp = temp[substrings[i]];     }     temp[substrings[substrings.length - 1]] = obj[property]; } return result; }; console.log(JSON.stringify(unflatten(obj), undefined, 4));

आउटपुट

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

{   "firstName": "John",   "lastName": "Green",   "car": {     "make": "Honda",     "model": "Civic",     "revisions": [       {       "miles": 10150,       "code": "REV01",       "changes": ""       },       {       "miles": 20021,       "code": "REV02",       "changes": [         {         "type": "asthetic",         "desc": "Left tire cap"         },         {         "type": "mechanic",         "desc": "Engine pressure regulator"         }       ]       }     ]   },   "visits": [     {     "date": "2015-01-01",     "dealer": "DEAL-001"     }, {     "date": "2015-03-01",     "dealer": "DEAL-002"     }   ] }

  1. JavaScript में सब-ऑब्जेक्ट्स और सरणियों वाले ऑब्जेक्ट को कैसे इम्पोर्ट करें? JavaScript में सब-ऑब्जेक्ट्स और सरणियों वाले ऑब्जेक्ट को कैसे इम्पोर्ट करें?

    JavaScript में सब-ऑब्जेक्ट्स और सरणियों वाले ऑब्जेक्ट को इम्पोर्ट करने का निम्नलिखिक कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <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" /> <title&g

  1. - JavaScript में सरणी की सरणी को ऑब्जेक्ट में बदलना

    मान लीजिए हमारे पास सरणियों की एक सरणी है जिसमें एक क्रिकेट खिलाड़ी का प्रदर्शन इस तरह से है - const arr = [ [Name, V Kohli], [Matches, 13], [Runs, 590], [Highest, 183], [NO, 3], [SR, 131.5] ]; हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी सरणी की सरणी लेता है। यहां, प्रत्येक उप-सरणी एक कु