Javascript 如何使用键删除多个sesstionStorage值?
我想使用key/s删除多个sessionStorage值,一种方法是我可以像这样逐个删除sessionStorage.removietem('key1')&Javascript 如何使用键删除多个sesstionStorage值?,javascript,session-storage,Javascript,Session Storage,我想使用key/s删除多个sessionStorage值,一种方法是我可以像这样逐个删除sessionStorage.removietem('key1')&sessionStorage.removietem('key2')等等。 那么,有没有一种方法可以像这样轻松地删除多个值?sessionStorage.removietem('key1','key2')或sessionStorage.removietem(['key1','key2'))一次只能删除一个项目(,)。(当然,您可以使用键列表和任
sessionStorage.removietem('key2')
等等。
那么,有没有一种方法可以像这样轻松地删除多个值?sessionStorage.removietem('key1','key2')或sessionStorage.removietem(['key1','key2'))一次只能删除一个项目(,)。(当然,您可以使用键列表和任何循环构造。)
您可以将项目存储为单个键下的数组(存储时使用
JSON.stringify
,加载时使用JSON.parse
),然后您可以在一次操作中删除整个数组(或将其替换为空数组)。没有这种方法,但是您可以做其他事情
与存储单个项目不同,您可以存储具有多个属性的对象,然后当您删除一个属性时,您将删除其所有属性 如果你想实现你想要的是用你自己的实现覆盖
sessionStorage
的removietem
功能
下面的示例将向您展示如何使用自己的内部调用原始removietem
函数的实现来包装removietem
function wrap(object, method, wrapper) {
var fn = object[method];
return object[method] = function() {
return wrapper.apply(this, [fn.bind(this)].concat(
Array.prototype.slice.call(arguments)));
};
};
wrap(sessionStorage, "removeItem", function(orginalFn) {
var originalParams = Array.prototype.slice.call(arguments, 1);
for (var i = 0; i < originalParams[0].length; i++) {
console.log('Removing Item- > ', originalParams[0][i])
orginalFn.apply(null, [originalParams[0][i]]);
}
});
sessionStorage.setItem("item1", "Item1 value");
sessionStorage.setItem("item2", "Item2 value");
sessionStorage.setItem("item3", "Item3 value");
sessionStorage.setItem("item4", "Item4 value");
//Call you custom removeItem method to remove both the key together.
sessionStorage.removeItem(["item1", "item2"]);
函数包装(对象、方法、包装器){
var fn=对象[方法];
返回对象[方法]=函数(){
返回wrapper.apply(这个[fn.bind(这个)].concat(
Array.prototype.slice.call(参数));
};
};
包装(会话存储,“removeItem”,函数(orginalFn){
var originalParams=Array.prototype.slice.call(参数,1);
对于(变量i=0;i<原始参数[0]。长度;i++){
console.log('Removing Item->',originalParams[0][i])
orginalFn.apply(空[原始参数[0][i]]);
}
});
setItem(“item1”,“item1值”);
setItem(“item2”、“item2值”);
setItem(“item3”、“item3值”);
setItem(“item4”、“item4值”);
//调用自定义removeItem方法以同时删除这两个键。
sessionStorage.removietem([“item1”,“item2]”);
['key1','key3'].forEach(函数(键){sessionStorage.removietem(键)};