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

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

<घंटा/>

मान लीजिए, हमारे पास इस तरह की कोई वस्तु है -

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

  1. कैसे जावास्क्रिप्ट में उप वस्तुओं और सरणियों के साथ एक वस्तु आयात करने के लिए?

    जावास्क्रिप्ट में उप-ऑब्जेक्ट्स और सरणियों के साथ किसी ऑब्जेक्ट को आयात करने के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .result{ फ़ॉन्ट-आकार:18पीएक्स; फ़ॉन्ट-वजन:500; }उप-वस्तुओं और सरणियों के साथ किसी वस्तु को आयात करना चलो s

  1. जावास्क्रिप्ट के साथ ऑब्जेक्ट्स को एक ऑब्जेक्ट ऐरे में कैसे मर्ज करें?

    ऑब्जेक्ट्स को एक ऑब्जेक्ट एरे में मर्ज करने के लिए निम्नलिखित कोड है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>D

  1. जावास्क्रिप्ट में सरणियों की सरणी को किसी वस्तु में परिवर्तित करना

    मान लीजिए कि हमारे पास सरणियों की एक सरणी है जिसमें इस तरह के क्रिकेट खिलाड़ी का प्रदर्शन शामिल है - const arr = [    ['Name', 'V Kohli'],    ['Matches', 13],    ['Runs', 590],    ['Highest', 183],    ['NO&