हम जानते हैं कि JavaScript में ऑब्जेक्ट के अंदर नेस्टेड कीज़ को एक्सेस करने के दो तरीके हैं।
उदाहरण के लिए, इस ऑब्जेक्ट को लें:
const obj = {
object: {
foo: {
bar: {
ya: 100
}
}
}
};
यदि हमें नेस्टेड प्रॉपर्टी 'ya' को एक्सेस या अपडेट करना है, तो हम इसे इस तरह एक्सेस कर सकते हैं:
तरीका 1 -
obj['object']['foo']['bar']['ya']
यातरीका 2 -
obj.object.foo.bar.ya
ये दोनों तरीके हमें उसी डेस्टिनेशन तक ले जाते हैं।
हमें एक JavaScript फंक्शन लिखना है जो नेस्टेड की के पाथ को स्ट्रिंग के रूप में लेता है जैसा तरीका 1 में दिखाया गया है और इसे तरीका 2 में दिखाए गए नोटेशन में बदलता है।
उदाहरण
इसके लिए कोड होगा:
const obj = { "object[foo][bar][ya]": 100 };
const constructDotNotation = obj => {
const keys = Object.keys(obj)[0].split('[').map(el => {
return el.replace(']', '');
});
let res = {};
keys.reverse().forEach(key => {
if (Object.keys(res).length === 0){
res[key] = obj[Object.keys(obj)[0]];
}else{
const temp = {};
temp[key] = res;
res = temp;
};
});
return res;
};
console.log(JSON.stringify(constructDotNotation(obj), undefined, 4));
आउटपुट
कंसोल में आउटपुट होगा:
{
"object": {
"foo": {
"bar": {
"ya": 100
}
}
}
}