lodash で 2 つのオブジェクトを詳細に比較するにはどうすればよいでしょうか? 質問する

lodash で 2 つのオブジェクトを詳細に比較するにはどうすればよいでしょうか? 質問する

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

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

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

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

オブジェクトは、より多くのネストされたプロパティを使用して、はるかに複雑になる可能性があります。ただし、これは良い例です。lodash で再帰関数などを使用するオプションがあります...

ベストアンサー1

簡単でエレガントな解決策は、_.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>

ただし、このソリューションでは、どのプロパティが異なるかは表示されません。

おすすめ記事