如果找到order_id,则将数字增加1(localStorage)
问题描述:
var arr = JSON.parse(localStorage.getItem('cart')) || [];
var obj = {};
$.each(arr, function(){
if(obj.order_id == this.order.id){
obj.order_id = '1';
obj.order_name = 'cake';
obj.price = '$1.10';
obj.qty = 1;
obj.qty = parseInt(this.qty) + 1;
}else{
obj.order_id = '1';
obj.order_name = 'cake';
obj.price = '$1.10';
obj.qty = 1;
}
});
arr.push(obj);
localStorage.setItme('cart',JSON.stringify(arr));
如果order_id已存在于localStorage中,如何更改订单数量?上面的代码片段将插入另一组数组对象,尽管数量部分是正确的。如果找到order_id,则将数字增加1(localStorage)
答
因为您想在id
匹配时更新数组值,所以在这种情况下不要创建新的对象。
而是改变,如果你的代码的一部分 -
$.each(arr, function(){
if(obj.order_id == this.order.id){
this.qty = parseInt(this.qty) + 1; //Assuming you only want to edit qnty value
}
还要确保你只else块推obj
。
+0
,则不会将数量增加1。因为你只是推新的obj.qty到数组== ==“ –
+0
obj对象是完全没有触动的。我不知道你怎么看它的任何属性被这段代码修改。 – Bikas
你想实现什么? –
为什么在这两个分支中覆盖'obj.qty ='? – EyasSH
@VikashPandey如果发现order_id为 –