কম্পিউটার

অবজেক্টে রিকার্সিভ স্ট্রিং পার্সিং - জাভাস্ক্রিপ্ট


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা স্ট্রিংগুলির একটি অ্যারে নেয় এবং স্ট্রিংগুলির সাথে সম্পর্কিত একটি বস্তু ফেরত দেয়৷

যেমন −

যদি অ্যারে −

হয়
const arr = [
   "country.UK.level.1",
   "country.UK.level.2",
   "country.US.level.1",
   "country.UK.level.3"
];

তারপর আউটপুট −

হওয়া উচিত
const output = {
   "country": [
       {"UK" : {"level" : ["1", "2", "3"]}},
       {"US" : {"level" : ["1","2"]}}
  ]
}

শর্তগুলি

স্ট্র অ্যারেতে সংরক্ষিত স্ট্রিংগুলি সাজানো হবে না এবং কোডটি তার বিরুদ্ধে শক্তিশালী হওয়া উচিত৷

স্ট্রিংগুলি x.y.x.y... প্যাটার্ন অনুসরণ করবে, যেখানে x সেই অ্যারের জন্য অনন্য হবে এবং y পরিবর্তন করতে পারে। আমার উদাহরণে দেশ এবং স্তর সবসময় একই হবে কারণ তারা x pos প্রতিনিধিত্ব করে।

এটির জন্য পুনরাবৃত্তিমূলক পদ্ধতির প্রয়োজন কারণ স্ট্র অ্যারেতে সংরক্ষিত স্ট্রিংগুলি যেকোনো দৈর্ঘ্যের হতে পারে। স্ট্রিং যত লম্বা হয় তত গভীর বাসা বাঁধে।

উদাহরণ

নিম্নলিখিত কোড -

const arr = [
   "country.UK.level.1",
   "country.UK.level.2",
   "country.US.level.1",
   "country.UK.level.3"
];
const stringToObject = arr => {
   const obj = {};
   arr.forEach(str => {
      let curr = obj;
      let splitted = str.split('.');
      let last = splitted.pop();
      let beforeLast = splitted.pop();
      splitted.forEach( sub => {
         if(!curr.hasOwnProperty(sub)){
            curr[sub] = {};
         };
         curr = curr[sub];
      });
      if(!curr[beforeLast]){
         curr[beforeLast] = [];
      };
      curr[beforeLast].push(last);
   });
   return obj;
};
console.log(JSON.stringify(stringToObject(arr), undefined, 4));

আউটপুট

এটি কনসোলে নিম্নলিখিত আউটপুট তৈরি করবে -

{
   "country": {
       "UK": {
           "level": [
               "1",
               "2",
               "3"
           ]
       },
       "US": {
           "level": [
               "1"
           ]
       }
   }
}

  1. কিভাবে জাভাস্ক্রিপ্ট অবজেক্টে একটি স্ট্রিং রূপান্তর করবেন?

  2. জাভাস্ক্রিপ্টের অংশে একটি স্ট্রিং বিভক্ত করা

  3. জাভাস্ক্রিপ্টে একটি স্ট্রিং থেকে একটি বস্তু তৈরি করার কোড

  4. জাভাস্ক্রিপ্টে অ্যারের অ্যারেকে একটি অবজেক্টে রূপান্তর করা