मान लीजिए, हमारे पास एक विशेष प्रकार की स्ट्रिंग है जिसमें वर्ण जोड़े में हैं, जैसे:
const str = "AABBCCDDEE";
हमें इस स्ट्रिंग के आधार पर एक ऑब्जेक्ट बनाना है जो इस तरह दिखे:
const obj = {
code: "AA",
sub: {
code: "BB",
sub: {
code: "CC",
sub: {
code: "DD",
sub: {
code: "EE",
sub: {}
}
}
}
}
};
ध्यान दें कि स्ट्रिंग में प्रत्येक यूनिक जोड़े के लिए एक नया सब-ऑब्जेक्ट है और किसी भी स्तर पर code प्रॉपर्टी एक विशिष्ट जोड़े को दर्शाती है।
हम इस समस्या को रिकर्सिव दृष्टिकोण से हल कर सकते हैं। हम स्ट्रिंग पर पुनरावृति करके विशिष्ट जोड़े को चुनेंगे और उसके लिए एक नया सब-ऑब्जेक्ट असाइन करेंगे।
उदाहरण
निम्नलिखित कोड है:
const str = "AABBCCDDEE";
const constructObject = str => {
const res = {};
let ref = res;
while(str){
const words = str.substring(0, 2);
str = str.substr(2, str.length);
ref.code = words;
ref.sub = {};
ref = ref.sub;
};
return res;
};
console.log(JSON.stringify(constructObject(str), undefined, 4));
आउटपुट
यह कंसोल में निम्नलिखित आउटपुट देगा:
{
"code": "AA",
"sub": {
"code": "BB",
"sub": {
"code": "CC",
"sub": {
"code": "DD",
"sub": {
"code": "EE",
"sub": {}
}
}
}
}
}