Lets say my sessionStorage
contains three objects who's keys are foo
, foobar
, and baz
. Is there a way that I can call .removeItem
or somehow delete all items in sessionStorage
who's keys match foo
? In this example I'd be left with only the item who's key is baz
.
问问题
53976 次
5 回答
40
2014 年 9 月 20 日更新正如 Jordan Trudgett 所指出的,反向循环更合适
您只能以编程方式实现它,因为它公开sessionStorage
了一组有限的方法:getItem(key)
、、、、setItem(key, value)
和:removeItem(key)
key(position)
clear()
length()
var n = sessionStorage.length;
while(n--) {
var key = sessionStorage.key(n);
if(/foo/.test(key)) {
sessionStorage.removeItem(key);
}
}
有关详细信息,请参阅 Nicholas C. Zakas 的博客条目:
http://www.nczonline.net/blog/2009/07/21/introduction-to-sessionstorage/
于 2013-11-07T19:28:24.687 回答
14
你可以做类似的事情
Object.keys(sessionStorage)
.filter(function(k) { return /foo/.test(k); })
.forEach(function(k) {
sessionStorage.removeItem(k);
});
于 2013-11-07T19:25:05.887 回答
2
由于 local 和 sessionStorage 都是对象,您可以像这样查看它们的属性:
for (var obj in localStorage) {
if (localStorage.hasOwnProperty(obj) && obj == "myKey") {
localStorage.removeItem(obj);
}
}
并按键删除所需的值,例如这里是“myKey”。
于 2015-01-22T12:08:26.417 回答
0
删除所有会话存储项:
sessionStorage.clear()
于 2022-01-20T17:13:35.713 回答
-1
尝试这个:
angular.forEach(sessionStorage, function (item,key) {
sessionStorage.removeItem(key);
});
这将从 sessionStorage 中删除所有内容
于 2016-11-24T07:30:20.070 回答