jQuery比较两个序列化对象

时间:2016-07-10 03:14:19

标签: javascript jquery arrays

我使用的插件包含事件startstop的API。当我开始在网格中拖动元素时,它会创建一个包含当前状态的所有数据的序列化数组。

当项目被删除时,它还会创建一个序列化的数据数组。

我想比较这两组数据,看它是否完全改变了。我不想触发数据库调用来更新网格放置,如果用户开始拖动某些内容然后将其放回原来的位置。

我尝试使用==进行比较,并且在比较之前我还先使用jSON.stringify,但已经读过它可以提供混合结果。

这样比较两个对象有简单的方法吗?

enter image description here

2 个答案:

答案 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));