我需要在源对象和目标对象之间执行深度对象比较,这些对象非常特定于我的用法并且也很复杂。但是如果有可能比较对象的json表示,我可以简化一些事情。我的意思是,如果保证在序列化后保留属性的顺序。换句话说,有两个对象:
{ a: "a", b: "b" }
和{ b: "b", a: "a" }
内容相同但json表示不同。
有两种情况可以通过以下代码片段来描述:
第一个:
var json = '{"a":"a","b":"b"}';
var x = JSON.parse(json);
var y = JSON.parse(json);
var comparison = JSON.stringify(x) === JSON.stringify(y); // will it always be true?
第二个:
var json = '{"a":"a","b":"b"}';
var x = JSON.parse(json);
var y = JSON.parse(json);
delete y.a;
delete y.b;
y.b = "b"; // Notice the order is changed
y.a = "a"; // Notice the order is changed
var comparison = JSON.stringify(x) === JSON.stringify(y); // will it always be true?
问题:
就是这样,谢谢!