Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有方法删除所有会话存储项,这些项的键与特定模式匹配?_Javascript_Browser_Sessionstorage - Fatal编程技术网

Javascript 是否有方法删除所有会话存储项,这些项的键与特定模式匹配?

Javascript 是否有方法删除所有会话存储项,这些项的键与特定模式匹配?,javascript,browser,sessionstorage,Javascript,Browser,Sessionstorage,假设我的sessionStorage包含三个对象,它们的键是foo、foobar和baz。是否有一种方法可以调用.removietem,或者以某种方式删除会话存储中的所有项目谁的密钥匹配foo?在这个例子中,我只剩下关键是baz的项,您可以执行以下操作 Object.keys(sessionStorage) .filter(function(k) { return /foo/.test(k); }) .forEach(function(k) { sessionStorage.re

假设我的
sessionStorage
包含三个对象,它们的键是
foo
foobar
baz
。是否有一种方法可以调用
.removietem
,或者以某种方式删除
会话存储中的所有项目
谁的密钥匹配
foo
?在这个例子中,我只剩下关键是
baz

的项,您可以执行以下操作

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

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

只有当
sessionStorage
公开一组有限的方法时,才能通过编程实现它:
getItem(key)
setItem(key,value)
removietem(key)
key(position)
clear()
length()

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


由于local和sessionStorage都是对象,因此您可以按如下方式查看它们的属性:

for(localStorage中的var obj){
if(localStorage.hasOwnProperty(obj)和&obj==“myKey”){
localStorage.removietem(obj);
}
}
试试这个:

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

这将删除sessionStorage中的所有内容

您应该以相反的顺序迭代存储对象,因为当您删除该项时,索引会发生更改。这样做可能会丢失一些项。应该指出的是,与其他数组不同,sessionStorage键的索引范围是从1到sessionStorage.length。如果要使用for循环,索引应该是正确的;您可以使用(new RegExp(patternStr))。test(key)没有角度标记,因此您的答案在此上下文中没有用处。
 angular.forEach(sessionStorage, function (item,key) {
          sessionStorage.removeItem(key);
      });