从WebStorage获取一个组的所有项目

Getting all items of one group from WebStorage

本文关键字:项目 一个 获取 WebStorage      更新时间:2023-09-26

我想在我的网站上使用WebStorage实现简单的购物车系统。项目是具有格式金额值的图片。有一个计数器值,它包含当前存储中可用的项目数量,每个新项目都以这种格式添加到WebStorage中:

item<id> = 1:3,5

现在我有一个从存储中列出项目的问题。例如,如果用户购买了5件物品并删除了item0item3 (item -= 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
    }
}

Len将是3,但我仍然有item5,它不会显示。

我应该做一个新的数组的项目的ID和删除ID的项目从页面删除或有一个更好的方法来处理这个?

最好使用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]
}