我使用此功能,因此我可以保存DOM中的旧值,将其与新值进行比较,并在值不同时显示特定符号。我远不是JS的专家,但我认为当我使用var retrievedData
将JSON.parse
转换为json对象并将结果(json对象)保存到var productsRetrived
时,会发生一些非常奇怪的事情。
从下面的图片可以看出,我在第一行作为来自console.log(retrievedData );
的JSON字符串。然后在第二行我得到的对象应该只是这个字符串的转换版本。
我不知道为什么,但我得到的是带有NEW值而不是旧值的字符串的更新版本。
有人可以解释为什么会这样吗?
以下是代码:
function isInArr (id, price){
var retrievedData = localStorage.getItem("tempThumbnails");
var productsRetrived = JSON.parse(retrievedData);
console.log(retrievedData );
console.log(productsRetrived );
for (var i = 0, len=productsRetrived.length; i < len; i++) {
if(productsRetrived[i].id==id){
//if product is in the local storage compare prices
if(productsRetrived[i].price==price){
//if prices match rebuild the json in LS
changeLS(productsRetrived[i]);
return 0;
break;
}else if(productsRetrived[i].price>price){
productsRetrived[i].price=price;
changeLS(productsRetrived[i]);
return -1;
break;
}else if(productsRetrived[i].price<price){
productsRetrived[i].price=price;
changeLS(productsRetrived[i]);
return 1;
break;
}
}
}
}