在cookie javascript中添加和计数对象

Add and count object in cookie javascript

本文关键字:对象 添加 cookie javascript      更新时间:2023-09-26

我正在创建Add to cart模块。我有Add to cart按钮,当用户点击它时,它会将项目的JSON data注册到cookie中。

这是项目对象的示例:

item =
     {
     DepartmentID :56,
     CategoryID:117,
     BrandID:19,
     BrandImage:"         ",
     BrandName:"General",
     Quantity:5,
     ID:706
     };

这就是我对cookie所做的:

 $('#addToCart').click(function(){
     addObjToCookie('Cart',item);
 });
 function serializeObjToJSON(obj) {
    var json = $.toJSON(obj);
    return json;
 }
 function deserializeJSONToObj(json) {
    var obj = $.evalJSON(json);
    return obj;
 }
 function addObjToCookie(cookieName, obj) {
    var jsonObj = serializeObjToJSON(obj);
    $.cookie(cookieName, jsonObj);
 }
 function getDataFromCookie(cookieName){
    var obj = deserializeJSONToObj($.cookie(cookieName));
    return obj;
 }
  1. 当用户点击Add to cart按钮时,我如何将项目对象附加到$(cookie('Cart'))中,格式如下:

    [{"DepartmentID":56,"CategoryID":117,"BrandID":19,"BrandImage":"         ","BrandName":"General","Quantity":5,"ID":706},
     {"DepartmentID":56,"CategoryID":117,"BrandID":19,"BrandImage":"         ","BrandName":"General","Quantity":1,"ID":707}];
    
  2. 如何计算Cart cookie中的项目,在本例中结果为2

  3. 如果Cart中的项目存在,则增加Quantity+1

任何帮助都将不胜感激,谢谢。

以下是答案1&2

function addObjToCookie(cookieName, obj) {
  // When adding see what's in there
  var currentCart = getDataFromCookie( cookieName );
  // Add what's new
  currentCart.push( obj );
  // Save new contents
  $.cookie(cookieName, serializeObjToJSON( currentCart ) );
}
function getDataFromCookie(cookieName){
  var val = $.cookie(cookieName);
  // Make sure this returns something valid if it's not there
  if ( !val ) {
    return [];
  }
  // No need to save off something if you're not doing anything with it
  return deserializeJSONToObj( val );
}

至于#3,在实际保存新的cookie内容之前,循环返回值,直到找到匹配项,如果您确实修改了它,而不是推送到数组。

如果您尝试循环,但不起作用,请发布您的尝试。我喜欢帮忙,但不喜欢从头开始写代码,所以你也可以学到一些。