有没有办法清除window.localStorage,window.localStorage.clear();
但是免除某些键/值对?
答案 0 :(得分:6)
不,但您可以在变量中保存所需的值,然后清除localStorage
,然后再次将存储在变量中的项目添加到其中。
示例:
var myItem = localStorage.getItem('key');
localStorage.clear();
localStorage.setItem('key',myItem);
答案 1 :(得分:3)
是
for( var k in window.localStorage) {
if( k == "key1" || k == "key2") continue;
// use your preferred method there - maybe an array of keys to exclude?
delete window.localStorage[k];
}
答案 2 :(得分:1)
您可以手动执行此操作;
function clearLocalStorage(exclude) {
for (var i = 0; i < localStorage.length; i++){
var key = localStorage.key(i);
if (exclude.indexOf(key) === -1) {
localStorage.removeItem(key);
}
}
}
请注意,我有目的地采用冗长的方法迭代localStorage
的长度并检索匹配的密钥,而不是简单地使用for/in
,for/in
localStorage
规范中未指定1}}密钥。 for/in
时较旧版本的FireFox barf。我不确定以后的版本(more info)。
exclude
应该是您希望排除的一系列密钥;
clearLocalStorage(["foo", "bar"]);