मान लीजिए, हमारे पास निम्न JSON ऑब्जेक्ट है जिसमें किसी भी स्तर तक घोंसला हो सकता है -
const obj = { "one": 1, "two": { "three": 3 }, "four": { "five": 5, "six": { "seven": 7 }, "eight": 8 }, "nine": 9 };
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो एक ऐसे नेस्टेड JSON ऑब्जेक्ट को लेता है और एक नई ऑब्जेक्ट देता है जिसमें कोई नेस्टिंग नहीं होता है और डॉट नोटेशन का उपयोग करके संबंधित मानों को कुंजियों में मैप करता है।
इसलिए, उपरोक्त वस्तु के मामले में, आउटपुट कुछ इस तरह दिखना चाहिए -
const output = { 'one': 1, 'two.three': 3, 'four.five': 5, 'four.six.seven': 7, 'four.eight': 8, 'nine': 9 };
उदाहरण
इसके लिए कोड होगा -
const obj = { "one": 1, "two": { "three": 3 }, "four": { "five": 5, "six": { "seven": 7 }, "eight": 8 }, "nine": 9 }; const flattenJSON = (obj = {}, res = {}, extraKey = '') => { for(key in obj){ if(typeof obj[key] !== 'object'){ res[extraKey + key] = obj[key]; }else{ flattenJSON(obj[key], res, `${extraKey}${key}.`); }; }; return res; }; console.log(flattenJSON(obj));
आउटपुट
और कंसोल में आउटपुट होगा -
{ one: 1, 'two.three': 3, 'four.five': 5, 'four.six.seven': 7, 'four.eight': 8, nine: 9 }