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

JavaScript-এ অবজেক্টের অ্যারে থেকে সিঙ্গেল অবজেক্ট তৈরি করা (Flatten)

JavaScript-এ reduce() মেথড ব্যবহার করে একাধিক অবজেক্ট ধারণকারী অ্যারেকে একক অবজেক্টে ফ্ল্যাটেন (merge) করা যায়। এটি কনফিগারেশন মার্জ বা ডেটা অগ리게শনে খুবই কাজে লাগে।

ডেটা

const studentDetails = [
    { Name: "Chris" },
    { Age: 22 }
];

reduce() ব্যবহার করে ফ্ল্যাটেন

const mergedObject = studentDetails.reduce((acc, obj) => {
    return { ...acc, ...obj };
}, {});

console.log(mergedObject);

চলানোর পদ্ধতি

  1. কোডটি flattenDemo.js নামে সংরক্ষণ করুন।
  2. টার্মিনালে চালান: node flattenDemo.js

আউটপুট

{ Name: 'Chris', Age: 22 }

কীভাবে কাজ করে

  • acc (accumulator) = প্রারম্ভিক খালি অবজেক্ট {}।
  • প্রতিটি ইটারেশনে {...acc, ...obj} স্প্রেড অপারেটর দিয়ে মার্জ করা হয়।
  • সमान প্রপার্টি থাকলে শেষের মান প্রাধান্য পায়।

সংক্ষিপ্ত ভার্সন (Arrow Function)

const mergeObjects = arr => arr.reduce((a, b) => ({ ...a, ...b }), {});

console.log(mergeObjects([
    { a: 1 }, { b: 2 }, { c: 3 }
])); // { a: 1, b: 2, c: 3 }

Object.assign() বিকল্প (পুরনো পদ্ধতি)

const merged = Object.assign({}, ...studentDetails);
// { Name: 'Chris', Age: 22 }

দ্বন্দ্ব হ্যান্ডলিং (Duplicate Keys)

const data = [
    { id: 1, name: "A" },
    { id: 2, name: "B" } // id دوبার আসলে শেষের মান থাকবে
];

const result = data.reduce((a, b) => ({ ...a, ...b }), {});
console.log(result); // { id: 2, name: "B" }

সতর্কতা

  • শ্যালো মার্জ (nested অবজেক্ট মার্জ করবে না)।
  • ডিপ মার্জের জন্য লোডাশ _.merge() বা কাস্টম রিকারসিভ ফাংশন লাগবে।
  1. জাভাস্ক্রিপ্টে অবজেক্ট 머জ করে সিঙ্গেল অবজেক্ট অ্যারে তৈরি করা

  2. জাভাস্ক্রিপ্টে ফ্ল্যাট অবজেক্ট অ্যারেকে ট্রি-তে রূপান্তর

  3. জাভাস্ক্রিপ্টে অ্যারে অফ অ্যারে কনভার্ট করে অবজেক্ট বানানো

  4. জাভাস্ক্রিপ্টে অবজেক্টের অ্যারে কনভার্ট করে প্লেইন অবজেক্ট বানানো