我如何使用一个for循环与localStorage来删除一个项目



我尝试从localStorage中删除特定数据并发现此问题。

其中一个答案似乎使用localStorage作为数组,但我没有jQuery。为了找到特定的键(和值),我尝试使用for循环:

localStorage.setItem("order", 1);
for(var i=0; i<localStorage.length; i++){ 
    var item=localStorage[i];
    if (item == 'order')  
    {
        alert(item);
        // I want to inspect the value...
        // and then remove it
        localStorage.removeItem(item);
    }
}

此代码从不发出警报,并且值order仍然存在。

我错过了什么?

localStorage是一个对象,你可以像这样遍历它

localStorage.setItem("order", 1);
for (var attr in localStorage){
   if (attr == 'order') {
       alert(localStorage[attr]);
       localStorage.removeItem(attr);
   }
}

虽然没有理由循环,因为您可以简单地调用

localStorage.removeItem('order');

如果您已经知道键的名称!

要从localStorage中删除某个键-值对,使用Storage.removeItem()和正确的键:

localStorage.removeItem('order');

不需要遍历条目

最新更新