2015-07-11 51 views
0
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)

+0

你想实现什么? –

+0

为什么在这两个分支中覆盖'obj.qty ='? – EyasSH

+0

@VikashPandey如果发现order_id为 –

回答

0

因为您想在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