1. ホーム
  2. ジャバスクリプト

[解決済み】Lodashで2つのオブジェクトを深く比較する方法は?

2022-03-24 18:05:28

質問

異なる2つのネストされたオブジェクトがあり、それらのネストされたプロパティの1つに違いがあるかどうかを知る必要があります。

var a = {};
var b = {};

a.prop1 = 2;
a.prop2 = { prop3: 2 };

b.prop1 = 2;
b.prop2 = { prop3: 3 };

このオブジェクトは、もっとネストされたプロパティを持つ、もっと複雑なものになる可能性があります。しかし、これは良い例です。lodashで再帰的な関数とかを使う選択肢もあるんだけど...。

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

簡単でエレガントな解決策は _.isEqual これは、深い比較を行うものです。

var a = {};
var b = {};

a.prop1 = 2;
a.prop2 = { prop3: 2 };

b.prop1 = 2;
b.prop2 = { prop3: 3 };

console.log(_.isEqual(a, b)); // returns false if different
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

しかし、この解決策では、どのプロパティが異なっているのかがわかりません。