Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで2つのオブジェクトを比較するにはどうすればよいですか?


オブジェクトは配列や文字列のようなものではありません。したがって、 "==="を使用して比較するだけです。 または"==" 不可能です。ここで比較するには、最初に文字列化する必要があります オブジェクトを作成し、等式演算子を使用します オブジェクトを比較することが可能です。

次の例では、オブジェクトは 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という名前のjavascriptライブラリ 'が導入されました。 キーと値のペアかどうかをチェックします 等しいかどうかはわかりませんが、順序は異なります。

次の例では、lodashの「_isEqual()」プロパティを使用してjavascriptオブジェクトを比較しています。

<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. JavaScriptでIDごとにオブジェクトの配列をグループ化する方法は?

    以下は、JavaScriptでオブジェクトの配列をIDでグループ化するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>

  2. 2つのJavaScriptオブジェクトをマージする方法は?

    以下は、2つのJavaScriptオブジェクトをマージするコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs