मान लीजिए, हमारे पास इस तरह की कोई वस्तु है -
const obj ={"firstName":"John", "lastName":"Green", "car.make":"Honda", "car.model":"Civic", "car.revisions.0. मील":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":"लेफ्ट टायर कैप", "car.revisions" .1.changes.1.type":"मैकेनिक", "car.revisions.1.changes.1.desc":"इंजन प्रेशर रेगुलेटर", "visits.0.date":"2015-01-01", "visits.0.dealer":"DEAL-001", "visits.1.date":"2015-03-01", "visits.1.dealer":"DEAL-002"};
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो एक ऐसी वस्तु को लेता है और इसे नेस्टेड ऑब्जेक्ट्स और एरेज़ में खोल देता है।
इसलिए, उपरोक्त सरणी के लिए आउटपुट −
. जैसा दिखना चाहिएकॉन्स्ट आउटपुट ={प्रथम नाम:'जॉन', अंतिम नाम:'ग्रीन', कार:{मेक:'होंडा', मॉडल:'सिविक', संशोधन:[{मील:10150, कोड:'आरईवी 01', परिवर्तन:''}, {मील:20021, कोड:'REV02', परिवर्तन:[{टाइप:'एस्थेटिक', desc:'लेफ्ट टायर कैप'}, {टाइप:'मैकेनिक', desc:'इंजन प्रेशर रेगुलेटर'}] } ] }, विज़िट:[ { दिनांक:'2015-01-01', डीलर:'डील-001' }, { दिनांक:'2015-03-01', डीलर:'डील-002' } ]};पूर्व>उदाहरण
const obj ={"firstName":"John", "lastName":"Green", "car.make":"Honda", "car.model":"Civic", "car.revisions.0. मील":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":"लेफ्ट टायर कैप", "car.revisions" .1.changes.1.type":"मैकेनिक", "car.revisions.1.changes.1.desc":"इंजन प्रेशर रेगुलेटर", "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 परिणाम ={}; चलो अस्थायी, सबस्ट्रिंग, संपत्ति, मैं; के लिए (obj में संपत्ति) { सबस्ट्रिंग्स =property.split ('।'); अस्थायी =परिणाम; के लिए (i =0; i <सबस्ट्रिंग। लम्बाई - 1; i ++) {अगर (! (सबस्ट्रिंग्स [i] अस्थायी में)) {अगर (isFinite (सबस्ट्रिंग्स [i + 1])) {अस्थायी [सबस्ट्रिंग्स [i]] =[]; } और {अस्थायी [सबस्ट्रिंग्स [i]] ={}; }} अस्थायी =अस्थायी [सबस्ट्रिंग्स [i]]; } अस्थायी [सबस्ट्रिंग्स [substrings.length - 1]] =obj [संपत्ति];} वापसी परिणाम;}; console.log(JSON.stringify(unflatten(obj), undefined, 4));आउटपुट
और कंसोल में आउटपुट होगा -
{ "फर्स्टनाम":"जॉन", "लास्टनाम":"ग्रीन", "कार":{ "मेक":"होंडा", "मॉडल":"सिविक", "रिवीजन":[ { "मील" :10150, "कोड":"आरईवी01", "परिवर्तन":""}, {"मील":20021, "कोड":"आरईवी02", "परिवर्तन":[ { "प्रकार":"अस्थेटिक", "desc ":"लेफ्ट टायर कैप" }, { "टाइप":"मैकेनिक", "desc":"इंजन प्रेशर रेगुलेटर" } ] } ] }, "विजिट":[ { "डेट":"2015-01-01" , "डीलर":"डील-001" }, { "तारीख":"2015-03-01", "डीलर":"डील-002" } ]}