所以我必须反对:
var productCopy = {
"light": true,
"new": true,
"available": false
};
var model = {
"light": true,
"new": true,
"available": false
};
我需要比较两者,所以我这样做了:
// Create our 2 strings
var productCopyString = JSON.stringify(productCopy);
var modelString = JSON.stringify(model);
然后我这样做了:
return modelString !== productCopyString;
但它不起作用。所以我做了一个像这样的console.log:
console.log('productCopy', productCopyString);
console.log('model', modelString);
console.log('are they different', modelString !== productCopyString)
然后又回来了:
productCopy {" light":true," new":true," available":false}
模型{"轻":真,"新":真,"可用":假}
他们是不同的假
这很奇怪,所以我这样做了:
var productCopyString = angular.toJson(productCopy);
var modelString = angular.toJson(model);
我得到了同样的结果。
有谁知道为什么?
答案 0 :(得分:0)
在Javascript中,如果两个字符串具有相同的数据,则它们相等===
。
例如:'{"light":true,"new":true,"available":false}' === '{"light":true,"new":true,"available":false}'
注意:在Java等其他语言中,两个字符串相等==
是指同一个实例。在这种情况下,具有相同数据的两个字符串将不是==
。