2016-10-23 39 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] 
}