2016-10-23 42 views
0

我想使用WebStorage在我的網站上實現簡單的購物車系統。項目是格式的圖片的數量值。這裏是包含在目前的可用存儲空間的項目數計數器值和每一個新的項目添加到WebStorage格式爲:從WebStorage獲取一個組的所有項目

item<id> = 1:3,5 

現在我已經從存儲上市項目的問題。例如,如果用戶購買了5個項目,並刪除item0item3item -= 2),我將無法獲得所有的值用簡單的for循環,即使我檢查,如果在存儲器中存在的元素:

var len = parseInt(localStorage.getItem("items")); 
for (let i = 0; i < len; i++) { 
    if (localStorage.getItem("item" + i)) { 
     // show element on the page 
    } 
} 

萊恩將是三,但我仍然會有item5這將不會顯示。

當我從項目頁面中刪除項目或者有更好的方法來處理這個項目時,我是否應該創建新的項目ID ID並刪除ID?

回答

1

最好使用JSON對象來處理所有的內容。

你的代碼看起來像這樣一組數據:通過項目

// initial data 
var cartData = { 
    items: ['item1', 'item2', 'item3'] 
}; 

// stringify your object so it can be saved into localStorage 
localStorage.setItem('cart', JSON.stringify(cartData)); 

然後你就可以輕鬆去除/循環:

// get cart 
var cartData = JSON.parse(localStorage.getItem('cart')); 

// delete 2nd item 
cartData.items.splice(1, 1); 

// loop through items 
for(var i = 0, l = cartData.items.length; i < l; i++) { 
    // do something with cartData.items[i] 
}