আমাদের কাছে একটি đặc biệt স্ট্রিং আছে যেটিতে ক্যারেক্টারগুলো জোড়া-जোড়া আছে, যেমন −
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": {} } } } } }