ऑब्जेक्ट्स सरणी या स्ट्रिंग की तरह नहीं होते। इसलिए केवल "===" या "==" का उपयोग करके तुलना करना संभव नहीं है। यहां तुलना करने के लिए हमें पहले ऑब्जेक्ट को स्ट्रिंगिफाई करना होगा और फिर इक्वलिटी ऑपरेटर्स का उपयोग करके ऑब्जेक्ट्स की तुलना करना संभव है।
निम्नलिखित उदाहरण में, ऑब्जेक्ट्स को पहले स्ट्रिंगिफाई() किया गया और फिर एक-दूसरे के साथ तुलना की गई।
उदाहरण
<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' नामक जावास्क्रिप्ट लाइब्रेरी पेश की गई है। यह जांचता है कि की/वैल्यू पेयर्स समान हैं या नहीं लेकिन उनका क्रम नहीं।
उदाहरण
निम्नलिखित उदाहरण में लॉडश की "_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