মনে করুন আমাদের দুটি অবজেক্ট আছে, A এবং B −
const A = { activity: 'purchased', count: undefined, time: '09:05:33' }; const B = { activity: 'purchased', count: '51', time: undefined };
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই দুটি অবজেক্ট মার্জ করবে, এই শর্ত রক্ষা করে যে যদি কোনো কী-র ট্রুথি (truthy) ভ্যালু থাকে তবে সেটি ফালসি (falsy) ভ্যালু দিয়ে ওভাররাইট হবena।
যদি আমরা স্প্রেড অপারেটর ব্যবহার করে সিম্পলি মার্জ করি, তবে সেটি ট্রুথি বা ফালসি ভ্যালু ট্র্যাক রাখবে না।
তাই আমাদের ইটেরেটিভ (iterative) পদ্ধতি ব্যবহার করতে হবে।
উদাহরণ
নিচে কোডটি দেওয়া হলো −
const A = { activity: 'purchased', count: undefined, time: '09:05:33' }; const B = { activity: 'purchased', count: '51', time: undefined }; const mergeObject = (A, B) => { let res = {}; Object.keys({...A,...B}).map(key => { res[key] = B[key] || A[key]; }); return res; }; console.log(mergeObject(A, B));আউটপুট
কনসোলে নিম্নলিখিত আউটপুট দেখা যাবে −
{ activity: 'purchased', count: '51', time: '09:05:33' }