用localStorage存儲購物車數據實戰

最近作了一個商城項目,那確定要作個購物車的嘛,因而我就想用localstorage存儲商品,以便用戶下次進入網頁還能夠看到本身收藏過的商品。業務方面,就保存商品數量、商品id和商品詳情就行了。數組

接下來是項目實戰bash

// 加購物車
  let k = 0; // 定義一個參數,用在循環中計算是否有這個商品id,若是沒有,就把商品添加到gifts中,若是有,那這個商品的num增長
  let gift = {
    id: this.giftDetail.goods_id,
    gift: this.giftDetail,
    num: this.num
  };
  let gifts = localStorage.getItem("gifts")
    ? JSON.parse(localStorage.getItem("gifts"))
    : [];
  for (let i = 0; i < gifts.length; i++) {
    let item = gifts[i];
    if (item.id === gift.id) {
      item.num += gift.num;
    } else {
      k = k + 1;
    }
  }
  if (k === gifts.length) {
    gifts.push(gift);
  }

 localStorage.setItem("gifts", JSON.stringify(gifts));
複製代碼

注意點:ui

  1. 數組存localstorage是須要序列化的,不然會自動調用toString()方法。
  2. 須要用k來計算是否有這個商品是否存在。
相關文章
相關標籤/搜索