可能重复:
JavaScript中的对象比较
是否有任何方法接受2个JSON对象并比较2以查看是否有任何数据已更改?
编辑
在审查评论之后,需要做出一些澄清.
JSON对象定义为
"一组无名的名称/值对.一个对象以{(左括号)开头,以}结尾(右大括号).每个名称后跟:(冒号),名称/值对用(逗号)分隔".- json.org
我的目标是能够比较2个JSON对象文字,简单地说.
我不是一个javascript大师所以,如果,在javascript中,这些是对象文字,那么我想这就是我应该称之为.
我相信我正在寻找的是一种能够:
jd.*_*jd. 14
简单地解析JSON并比较两个对象是不够的,因为它不是完全相同的对象引用(但可能是相同的值).
你需要做一个深刻的平等.
来自http://threebit.net/mail-archive/rails-spinoffs/msg06156.html - 这似乎是使用jQuery.
Object.extend(Object, {
deepEquals: function(o1, o2) {
var k1 = Object.keys(o1).sort();
var k2 = Object.keys(o2).sort();
if (k1.length != k2.length) return false;
return k1.zip(k2, function(keyPair) {
if(typeof o1[keyPair[0]] == typeof o2[keyPair[1]] == "object"){
return deepEquals(o1[keyPair[0]], o2[keyPair[1]])
} else {
return o1[keyPair[0]] == o2[keyPair[1]];
}
}).all();
}
});
Usage:
var anObj = JSON.parse(jsonString1);
var anotherObj= JSON.parse(jsonString2);
if (Object.deepEquals(anObj, anotherObj))
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107969 次 |
| 最近记录: |