Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 如何使用键删除多个sesstionStorage值?_Javascript_Session Storage - Fatal编程技术网

Javascript 如何使用键删除多个sesstionStorage值?

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'))一次只能删除一个项目(,)。(当然,您可以使用键列表和任

我想使用key/s删除多个sessionStorage值,一种方法是我可以像这样逐个删除sessionStorage.removietem('key1')&
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(键)};