मान लीजिए, हमारे पास निम्नलिखित JSON ऑब्जेक्ट है -
const obj = { "context": { "device": { "localeCountryCode": "AX", "datetime": "3047-09-29T07:09:52.498Z" }, "currentLocation": { "country": "KM", "lon": -78789486, } } };
हमें एक जावास्क्रिप्ट रिकर्सिव फ़ंक्शन लिखना आवश्यक है जो शुरू में एक ऐसी सरणी लेता है। फ़ंक्शन को उपरोक्त ऑब्जेक्ट को "लेबल" - "बच्चों" प्रारूप में विभाजित करना चाहिए।
इसलिए, उपरोक्त ऑब्जेक्ट के लिए आउटपुट −
. जैसा दिखना चाहिएconst output = { "label": "context", "children": [ { "label": "device", "children": [ { "label": "localeCountryCode" }, { "label": "datetime" } ] }, { "label": "currentLocation", "children": [ { "label": "country" }, { "label": "lon" } ] } ] }
इसके लिए कोड होगा -
उदाहरण
const obj = { "context": { "device": { "localeCountryCode": "AX", "datetime": "3047-09-29T07:09:52.498Z" }, "currentLocation": { "country": "KM", "lon": -78789486, } } }; const transformObject = (obj = {}) => { if (obj && typeof obj === 'object') { return Object.keys(obj).map((el) => { let children = transformObject(obj[el]); return children ? { label: el, children: children } : { label: el }; }); }; }; console.log(JSON.stringify(transformObject(obj), undefined, 4));
आउटपुट
और कंसोल में आउटपुट होगा -
[ { "label": "context", "children": [ { "label": "device", "children": [ { "label": "localeCountryCode" }, { "label": "datetime" } ] }, { "label": "currentLocation", "children": [ { "label": "country" }, { "label": "lon" } ] } ] } ]