有没有办法删除所有sessionStorage项目与键匹配某个模式?

时间:2013-11-07 19:20:29

标签: javascript browser sessionstorage

假设我的sessionStorage包含三个对象,其密钥为foofoobarbaz。有没有办法可以调用.removeItem或以某种方式删除sessionStorage中与foo匹配的所有项目?在这个例子中,我只剩下关键项为baz的项目。

4 个答案:

答案 0 :(得分:35)

2014年9月20日更新正如Jordan Trudgett所指出的,反向循环更合适

您只能以编程方式实现,因为sessionStorage公开了一组有限的方法:getItem(key)setItem(key, value)removeItem(key)key(position),{{1} }和clear()

length()

有关详细信息,请参阅Nicholas C. Zakas的博客文章:

http://www.nczonline.net/blog/2009/07/21/introduction-to-sessionstorage/

答案 1 :(得分:10)

您可以执行类似

的操作
Object.keys(sessionStorage)
  .filter(function(k) { return /foo/.test(k); })
  .forEach(function(k) {
    sessionStorage.removeItem(k);
  });

答案 2 :(得分:2)

由于local和sessionStorage都是对象,因此您可以像这样查看其属性:



    for (var obj in localStorage) {
      if (localStorage.hasOwnProperty(obj) && obj == "myKey") {
        localStorage.removeItem(obj);
      }
    }




并按键移除所需的值,此处为" myKey"例如。

答案 3 :(得分:0)

试试这个:

 angular.forEach(sessionStorage, function (item,key) {
          sessionStorage.removeItem(key);
      });

这将删除sessionStorage

中的所有内容