কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে নেস্টেড JSON অবজেক্টে ইউনিক আইডি যোগ করা


সমস্যা বিবরণ

গভীর নেস্টেড JSON অবজেক্ট দেওয়া আছে। যেসব অবজেক্টে title প্রপার্টি আছে, সেগুলোতে একটি ইউনিক id প্রপার্টি যোগ করতে হবে। মূল অ্যারে কপি না করে ইন-প্লেস মডিফাই করতে হবে।

সমাধান

const arr = [ /* বড় নেস্টেড ডেটা স্ট্রাকচার */ ];

const addId = (id = 1) => {
  return function recur(obj) {
    if ('title' in obj) {
      obj.id = id++;
    }
    Object.keys(obj).forEach(el => {
      Array.isArray(obj[el]) && obj[el].forEach(recur);
    });
  };
};

const mapId = arr => {
  arr.forEach(addId);
};

mapId(arr);
console.log(JSON.stringify(arr, undefined, 4));

আউটপুট

সব title প্রপার্টি যুক্ত অবজেক্টে id প্রপার্টি যোগ হয়েছে (১, ২, ৩... ক্রমে)।

ব্যাখ্যা

  • addId ক্লোজার: id কাউন্টার রিটেইন করে।
  • recur ফাংশন: প্রতিটি অবজেক্টে title আছে কিনা চেক করে, থাকলে id অ্যাসাইন করে।
  • Object.keys(obj).forEach দিয়ে সব প্রপার্টি ট্রাভার্স, অ্যারে হলে রিকার্সিভ কল।
  • ইন-প্লেস মডিফিকেশন: মূল ডেটা স্ট্রাকচার পরিবর্তিত হয়।
  1. জাভাস্ক্রিপ্টে JSON টেক্সটকে JSON অবজেক্টে কনভার্ট করার পদ্ধতি

  2. জাভাস্ক্রিপ্টে প্রতিটি অবজেক্টের জন্য ইউনিক আইডি তৈরি করা

  3. জাভাস্ক্রিপ্টে নেস্টেড JSON অবজেক্ট থেকে কী অনুযায়ী মান পান

  4. জাভাস্ক্রিপ্টে JSON অবজেক্ট ফ্ল্যাটেন (Flatten) করা