假设我的sessionStorage
包含三个对象,其密钥为foo
,foobar
和baz
。有没有办法可以调用.removeItem
或以某种方式删除sessionStorage
中与foo
匹配的所有项目?在这个例子中,我只剩下关键项为baz
的项目。
答案 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
中的所有内容