ভূমিকা
JavaScript-এ একাধিক অবজেক্টকে একত্রিত (merge) করে এবং নির্দিষ্ট প্রপার্টি মুছে ফেলা (delete) একটি সাধারণ টাস্ক। এই আর্টিকেলে Object.assign() এবং delete অপারেটর ব্যবহার করে এটি করার পদ্ধতি দেখানো হয়েছে।
সমস্যা বিবরণ
দুটি অবজেক্টযুক্ত একটি অ্যারে দেওয়া আছে:
const err = [
{ "chk": true, "name": "test" },
{ "chk": true, "post": "test" }
];
লক্ষ্য: এই দুটি অবজেক্টকে একটা করে chk প্রপার্টি বাদ দিয়ে একত্রিত করা।
ধাপে ধাপ সমাধান
ধাপ ১: অবজেক্টগুলো একত্রিত করা
const errObj = Object.assign(...err);
Object.assign() মেথড এক বা একাধিক সোর্স অবজেক্টকে টার্গেট অবজেক্টে কপি করে। স্প্রেড অপারেটর (...) ব্যবহার করে অ্যারেতে থাকা সব অবজেক্ট আর্গুমেন্ট হিসেবে পাস করা হয়েছে।
ধাপ ২: chk প্রপার্টি মুছে ফেলা
delete errObj['chk'];
console.log(errObj);
delete অপারেটর অবজেক্ট থেকে প্রপার্টি সম্পূর্ণরূপে সরিয়ে দেয়।
সম্পূর্ণ কোড
const err = [
{ "chk": true, "name": "test" },
{ "chk": true, "post": "test" }
];
const errObj = Object.assign(...err);
delete errObj['chk'];
console.log(errObj);
আউটপুট
{ name: 'test', post: 'test' }
বিকল্প পদ্ধতিগুলো
১. Spread Operator (ES6+) - প্রস্তাবিত
const errObj = { ...err[0], ...err[1] };
delete errObj.chk;
// বা এক লাইনে:
const result = ({ ...err[0], ...err[1], chk: undefined });
// বা destructuring দিয়ে:
const { chk, ...result } = { ...err[0], ...err[1] };
২. reduce() ব্যবহার করে একাধিক অবজেক্ট একত্রিত
const merged = err.reduce((acc, obj) => ({ ...acc, ...obj }), {});
delete merged.chk;
৩. Object.fromEntries() (ES2019)
const merged = Object.fromEntries(
Object.entries(Object.assign({}, ...err))
.filter(([key]) => key !== 'chk')
);
গভীর ক্লোনিং (Deep Clone) দরকার হলে
Object.assign() শ্যালো ক্লোন (shallow clone) করে। নেস্টেড অবজেক্ট হলে:
// JSON পদ্ধতি (সিম্পল কেসের জন্য)
const deepClone = JSON.parse(JSON.stringify(merged));
// বা লোডাশ/অন্য লাইব্রেরি ব্যবহার করুন
সাম্প্রতিক জাভাস্ক্রিপ্ট ফিচার (ES2023+)
// Object.hasOwn() - প্রপার্টি আছে কিনা চেক
if (Object.hasOwn(errObj, 'chk')) {
delete errObj.chk;
}
সারাংশ
Object.assign(...array)- অ্যারেতে থাকা অবজেক্টগুলো একত্রিত করেdelete obj.property- প্রপার্টি মুছে ফেলে- আধুনিক কোডে স্প্রেড অপারেটর (
...) এবং ডিস্ট্রাকচারিং বেশি ব্যবহার করা হয়