আমরা জানি যে দুটি উপায়ে আমরা জাভাস্ক্রিপ্টের একটি অবজেক্টের মধ্যে নেস্টেড কীগুলি অ্যাক্সেস করতে পারি৷
উদাহরণস্বরূপ, এই বস্তুটি নিন -
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 } } } }