কম্পিউটার

জাভাস্ক্রিপ্টে বস্তু অনুলিপি করার জন্য বিভিন্ন কৌশল


যেকোনো ভাষায় বস্তুর অনুলিপি করার 2টি উপায় আছে, গভীর অনুলিপি এবং অগভীর অনুলিপি।

অগভীর অনুলিপি এবং গভীর অনুলিপি ভাষাগুলি অজ্ঞেয়বাদী। অগভীর কপি যতটা সম্ভব কম নকল করুন। একটি সংগ্রহের একটি অগভীর অনুলিপি সংগ্রহ কাঠামোর একটি অনুলিপি, উপাদান নয়। একটি অগভীর অনুলিপি সহ, দুটি সংগ্রহ এখন পৃথক উপাদানগুলি ভাগ করে।

উদাহরণ

 innerObj ={ a:'b', c:'d'} let obj ={ x:"test", y:innerObj}// একটি অগভীর কপি তৈরি করুন। লেট copyObj =Object.assign({}, obj);// copyObj এবং obj এর prop y উভয়ই এখন একই innerObj কে নির্দেশ করে। এর কোনো পরিবর্তন প্রতিফলিত হবে.innerObj.a ="test"console.log(obj)console.log(copyObj)

আউটপুট

এটি আউটপুট দেবে −

{ x:'test', y:{ a:'test', c:'d' } }{ x:'test', y:{ a:'test', c:'d' } } 

মনে রাখবেন যে অগভীর অনুলিপিগুলি পুনরাবৃত্তিমূলকভাবে ক্লোন তৈরি করে না। এটি শুধুমাত্র শীর্ষ স্তরে এটি করে৷

গভীর অনুলিপি সবকিছু নকল. একটি সংগ্রহের একটি গভীর অনুলিপি হল দুটি সংগ্রহ যা মূল সংগ্রহের সমস্ত উপাদান ক্লোন করা হয়৷

উদাহরণ

 innerObj ={ a:'b', c:'d'} let obj ={ x:"test", y:innerObj}// একটি গভীর অনুলিপি তৈরি করুন। লেট copyObj =JSON.parse(JSON.stringify) (obj))// copyObj এবং obj এর prop y উভয়ই এখন একই innerObj কে নির্দেশ করে। এর কোনো পরিবর্তন প্রতিফলিত হবে.innerObj.a ="test"console.log(obj)console.log(copyObj)

আউটপুট

এটি আউটপুট দেবে −

{ x:'test', y:{ a:'test', c:'d' } }{ x:'test', y:{ a:'b', c:'d' } } 
  1. কিভাবে জাভাস্ক্রিপ্টে আইডি দ্বারা অবজেক্টের অ্যারে গ্রুপ করবেন?

  2. জাভাস্ক্রিপ্টে বিবৃতিতে...এর জন্য ব্যাখ্যা কর?

  3. জাভাস্ক্রিপ্টে বস্তুর সমতা ব্যাখ্যা কর।

  4. কিভাবে জাভাস্ক্রিপ্টে বস্তুর জন্য হ্রাস পদ্ধতি প্রয়োগ করবেন?