আমরা জানি যে দুটি উপায়ে আমরা জাভাস্ক্রিপ্টের একটি অবজেক্টের মধ্যে নেস্টেড কীগুলি অ্যাক্সেস করতে পারি৷
উদাহরণস্বরূপ, এই বস্তুটি নিন -
const obj = {
object: {
foo: {
bar: {
ya: 100
}
}
}
}; যদি আমাদের নেস্টেড প্রপার্টি 'ya' অ্যাক্সেস বা আপডেট করার প্রয়োজন হয়, আমরা −
এর মতো এটি অ্যাক্সেস করতে পারিওয়ে 1 -
obj['object']['foo']['bar']['ya']
বা ওয়ে 2 -
obj.object.foo.bar.ya
এই উভয় পথই আমাদের একই গন্তব্যে নিয়ে যায়।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা পথ 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
}
}
}
}