मान लीजिए, हमारे पास जावास्क्रिप्ट में निम्नलिखित सरणी है -
const arr =[{"code":"2", "name":"PENDING"},{ "code":"2.2", "name":"Pending CHILDREN"},{ "code":" 2.2.01.01", "नाम":"लंबित बच्चे बच्चे"}, { "कोड":"2.2.01.02", "नाम":"लंबित बच्चे बच्चे 02"}, { "कोड":"1", "नाम" :"सक्रिय"}, { "कोड":"1.1", "नाम":"सक्रिय बच्चे"}, { "कोड":"1.1.01", "नाम":"सक्रिय बच्चे बच्चे"}];पूर्व>हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो ऐसी एक सरणी लेता है। फ़ंक्शन को ऑब्जेक्ट के "नाम" गुण के आधार पर इस सरणी से एक ट्री संरचना का निर्माण करना चाहिए।
इसलिए, उपरोक्त सरणी के लिए, आउटपुट कुछ इस तरह दिखना चाहिए -
const आउटपुट =[{"कोड":"2", "नाम":"लंबित", "बच्चे":[{"कोड":"2.2", "नाम":"लंबित बच्चे", "बच्चे" :[{"कोड":"2.2.01.01", "नाम":"लंबित बच्चे बच्चे"}, {"कोड":"2.2.01.02", "नाम":"लंबित बच्चे 02" }]}]}, { "कोड":"1", "नाम":"सक्रिय", "बच्चे":[{"कोड":"1.1", "नाम":"सक्रिय बच्चे", "बच्चे":[{"कोड":"1.1.01", "नाम":"सक्रिय बच्चे बच्चे" }] }]}];उदाहरण
इसके लिए कोड होगा -
const arr =[{"code":"2", "name":"PENDING"},{ "code":"2.2", "name":"Pending CHILDREN"},{ "code":" 2.2.01.01", "नाम":"लंबित बच्चे बच्चे"}, { "कोड":"2.2.01.02", "नाम":"लंबित बच्चे बच्चे 02"}, { "कोड":"1", "नाम" :"सक्रिय"}, { "कोड":"1.1", "नाम":"सक्रिय बच्चे"}, { "कोड":"1.1.01", "नाम":"सक्रिय बच्चे बच्चे"}]; =(गिरफ्तारी, रूट ='') => {मानचित्र ={}, अंतिम =[रूट], स्तर =0; नक्शा [रूट] ={}; arr.forEach(el => { माता-पिता =रूट दें; जबकि (स्तर &&अंतिम [स्तर]। लंबाई> =el.code.length) {स्तर--; }; माता-पिता =अंतिम [स्तर]; स्तर ++; last.length =स्तर; last.push (el.code); नक्शा [el.code] =el; नक्शा [माता-पिता]। बच्चे =नक्शा [माता-पिता]। बच्चे || []; नक्शा [माता-पिता]। बच्चे। पुश (एल); }); वापसी नक्शा[रूट].बच्चों;};कंसोल.लॉग(JSON.stringify(transformToTree(arr), undefined, 4));आउटपुट
और कंसोल में आउटपुट होगा -
[ { "कोड":"2", "नाम":"लंबित", "बच्चे":[ { "कोड":"2.2", "नाम":"लंबित बच्चे", "बच्चे":[ { "कोड":"2.2.01.01", "नाम":"लंबित बच्चे बच्चे" }, { "कोड":"2.2.01.02", "नाम":"लंबित बच्चे 02" } ] } ] }, { "कोड ":"1", "नाम":"सक्रिय", "बच्चे":[{"कोड":"1.1", "नाम":"सक्रिय बच्चे", "बच्चे":[ { "कोड":"1.1.1)। 01", "नाम":"सक्रिय बच्चे बच्चे" } ] } ] }]