我使用的插件包含事件start
和stop
的API。当我开始在网格中拖动元素时,它会创建一个包含当前状态的所有数据的序列化数组。
当项目被删除时,它还会创建一个序列化的数据数组。
我想比较这两组数据,看它是否完全改变了。我不想触发数据库调用来更新网格放置,如果用户开始拖动某些内容然后将其放回原来的位置。
我尝试使用==
进行比较,并且在比较之前我还先使用jSON.stringify
,但已经读过它可以提供混合结果。
这样比较两个对象有简单的方法吗?
答案 0 :(得分:3)
==
检查对象的引用是否相等(不比较内容)。
对于深层对象比较,您可以使用lodash's isEqual()。
答案 1 :(得分:2)
如果你不介意一些不雅,你可以这样做:
var obj1 = [{x:1},{x:2}];
var obj2 = [{x:1},{x:2}];
var obj3 = [{x:1},{x:3}];
function isSameObject(o1, o2) {
return JSON.stringify(o1) == JSON.stringify(o2);
}
alert('is same obj 1 and obj 2?' + isSameObject(obj1, obj2));
alert('is same obj 1 and obj 3?' + isSameObject(obj1, obj3));