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

জাভাস্ক্রিপ্টে দুটি অবজেক্ট তুলনা করার পদ্ধতি


অবজেক্টগুলো অ্যারে বা স্ট্রিংয়ের মতো নয়। তাই সরাসরি "===" বা "==" দিয়ে তুলনা করা সম্ভব নয়। এখানে অবজেক্টকে প্রথমে স্ট্রিংগিফাই (stringify) করতে হয়, তারপর ইকwalিটি অপারেটর দিয়ে তুলনা করা সম্ভব।

নিচের উদাহরণে, অবজেক্টগুলো প্রথমে স্ট্রিংগিফাইড (stringified) করা হয়েছে এবং তারপর একে অপর সাথে তুলনা করা হয়েছে।

উদাহরণ

<html> <body>    <script>       const obj1 = {Name: "Rahim", City: 'Hyderabad',Country: "India" };       const obj2 = {Name: "Rahim", City: 'Hyderabad',Country: "India" };       document.write(JSON.stringify(obj1) === JSON.stringify(obj2));    </script> </body> </html>

আউটপুট

true

নিচের উদাহরণটি দেখলে, একই প্রোপার্টিগুলো রয়েছে কিন্তু তাদের অর্ডার ভিন্ন। এই ক্ষেত্রে অবজেক্ট তুলনা false রিটার্ন করবে।

উদাহরণ

<html> <body>    <script>       const obj1 = {Name: "Rahim", City: 'Hyderabad', Country: "India" };       const obj2 = {Name: "Rahim", Country: "India", City: 'Hyderabad', };       document.write(JSON.stringify(obj1) === JSON.stringify(obj2));    </script> </body> </html>

আউটপুট

false

এই খামি দূর করতে জাভাস্ক্রিপ্ট লাইব্রেরি 'lodash' পরিচয় করানো হয়েছে। এটি চেক করে কী/ভ্যালু পেয়ার (key/value pairs) সমান কিনা, কিন্তু তাদের অর্ডার চেক করে না।

উদাহরণ

নিচের উদাহরণে lodash-এর "_isEqual()" প্রোপার্টি ব্যবহার করে জাভাস্ক্রিপ্ট অবজেক্ট তুলনা করা হয়েছে।

<html> <head>    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script> </head> <body>    <script>       const obj1 = {Name: "Rahim", City: 'Hyderabad', Country: "India" };       const obj2 = {Name: "Rahim", Country: "India", City: 'Hyderabad', };       document.write(JSON.stringify(obj1) === JSON.stringify(obj2));       document.write("<br>");       document.write(_.isEqual(obj1, obj2));    </script> </body> </html>

আউটপুট

false true
  1. জাভাস্ক্রিপ্টে অবজেক্টের অ্যারে ID দিয়ে গ্রুপ করা

  2. জাভাস্ক্রিপ্টে দুটি অবজেক্ট মার্জ করা

  3. C#-এ দুটি টাপল তুলনা করা (Compare Tuples)

  4. রুবি ইকুয়ালিটিতে দক্ষতা: কাস্টম `==` ইমপ্লিমেন্টেশন দিয়ে অবজেক্ট কমপেয়ার করা