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

Lodash লাইব্রেরিতে .extend() / .assign() এবং .merge()-এর পার্থক্য


assign/extend সোর্সের প্রতিটি প্রপার্টি নেয়, এর ভ্যালু-as-is কপি করে ডেস্টিনেশনে। যদি প্রপার্টি ভ্যালুগুলো নিজেই অবজেক্ট হয়, তবে তাদের প্রপার্টির রিকার্সিভ ট্রাভার্সাল নেই। এটাকেও শ্যালো কপি/ক্লোনিং বলা হয়। পুরো অবজেক্টটি সোর্স থেকে নেওয়া হয় এবং ডেস্টিনেশনে সেট করা হয়।

Merge সোর্সের প্রতিটি প্রপার্টি নেয়, চেক করে যে প্রপার্টিটি নিজে অবজেক্ট কিনা। যদি হয়, তবে সেটি রিকার্সিভলি নিচে যায় এবং চাইল্ড অবজেক্ট প্রপার্টি সোর্স থেকে ডেস্টিনেশনে ম্যাপ করার চেষ্টা করে।

উদাহরণ

let _ = require('lodash'); let destination = { a: { b: 1, c: 2 }, }; let source = { a: { d: 2, c: 3 }, }; console.log(_.merge(destination, source)); console.log(_.extend(destination, source));

আউটপুট

এটি নিচের আউটপুট দেবে -

{ a: { b: 1, c: 3, d: 2 } } { a: { d: 2, c: 3 } }

  1. STL এবং C++ স্ট্যান্ডার্ড লাইব্রেরির পার্থক্য

  2. C# এবং Visual C#-র পার্থক্য

  3. C# এবং .NET-এর পার্থক্য

  4. Go এবং Java-এর পার্থক্য