如果发现order_id,则将数字增加1(localStorage)

时间:2015-07-11 04:34:01

标签: javascript arrays json

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));

如果我的localStorage中已经存在order_id,我该如何更改订单的数量?上面的代码片段将插入另一组数组对象,尽管数量部分是正确的。

1 个答案:

答案 0 :(得分: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