在 Angular 应用程序中,我正在比较两个对象(原始对象与用户进行更改后的当前对象)。问题是,即使在进行任何更改之前,这两个对象也不相等。在浏览器中调试时,两个对象看起来完全相同。下面我尝试了 angular.equals()
但 comparison
的计算结果为 false:
ChangeTracker.protype.hasChanged = function (current) {
var comparison = angular.equals(this.original, current);
return !comparison;
};
我还尝试了 Underscore 的 _.isEqual
以及常规 (==
) 和严格 (===
) 相等运算符.
我以为我可能是通过引用进行比较,但即使我将对象包装在 JSON.parse(JSON.stringify())
中,比较仍然返回 false。
为什么两个看似相等的对象会不相等?
最佳答案
看起来您的代码中有一个拼写错误,您的意思是返回比较值吗?
ChangeTracker.protype.hasChanged = function (current) {
var comparison = angular.equals(this.original, current);
return !compare;
};
看起来应该是:
返回!比较
关于javascript - 两个 'equal' javascript 对象不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105929/