1. ホーム
  2. angularjs

[解決済み] Angularでオブジェクトを比較する

2023-07-18 04:14:22

質問

Angularで2つのオブジェクトのquot;deep"比較を行うことは可能でしょうか?私がしたいことは、各キー/値のペアを比較することです。たとえば、次のようになります。

オブジェクト1

{
   key1: "value1",
   key2: "value2",
   key3: "value3"
}

オブジェクト2

{
   key1: "value1",
   key2: "newvalue",
   key3: "value3" 
}

私が必要とするのは、キーと値のペアのうち1つだけが異なっているため、比較に失敗することです。言い換えれば、すべてのキー/値ペアが正確に一致するか、さもなければ失敗する必要があります。これはAngularにすでに組み込まれているものなのでしょうか?私は本当に必要であれば、私自身のサービスを書くことができると確信していますが、私はそれがすでに組み込まれていることを期待していました。angular.equalsのようなものです。

どのように解決するのですか?

2つのオブジェクトを比較するために、あなたは使用することができます。

angular.equals(obj1, obj2)

これは深い比較を行い、キーの順序には依存しません。 参照 AngularJS DOCS と少し デモ

var obj1 = {
  key1: "value1",
  key2: "value2",
  key3: {a: "aa", b: "bb"}
}

var obj2 = {
  key2: "value2",
  key1: "value1",
  key3: {a: "aa", b: "bb"}
}

angular.equals(obj1, obj2) //<--- would return true