2015-09-11 51 views
2

我试图使用lodash-node包中的.isEqual方法比较两个对象。即使对象相同,.isEqual返回false_.isEqual在没有时报告差异

var _ = require('lodash-node'); 

var obj1 = {"properties":{"property":[{"comfort":["2.4 GHz"]},{"name":["Mosaic"]}]}}; 
var obj2 = {"properties":{"property":[{"name":["Mosaic"]},{"comfort":["2.4 GHz"]}]}}; 

if(_.isEqual(obj1, obj2)) //--> Returns false 
    console.log('same') 
else 
    console.log('not same'); 

节点: - v0.12.7
lodash节点: - v3.10.1

的物体看起来与我相似。请帮忙指出是否有任何区别。

回答

3

对象不相等,因为即使进行深度比较,数组是一个有序集合,并且顺序很重要。你的数组拥有相同的值,但不是以相同的顺序。

+0

啊,对。我错过了。在进行深入比较之前,让我对这些阵列进行排序。谢谢您的帮助。 –

2

在数组中的顺序,所以

​​

这就是为什么你的榜样返回false。

+0

谢谢丹尼尔。我错过了那一点。 –