如何通过键名批量删除sessionStorage中的多个值?
批量删除sessionStorage中多个键值对的简便方法
嘿,我懂你不想重复写sessionStorage.removeItem()的心情——确实,原生的removeItem()方法只支持传入单个键名,没法直接传多个参数或者数组。不过我们可以用几行简单代码来实现批量删除,这里有几个实用的方案:
方案1:用数组forEach直接遍历删除
这是最简洁的写法,不用额外封装函数,直接对键名数组调用forEach即可:
['key1', 'key2', 'key3'].forEach(key => sessionStorage.removeItem(key));
哪怕数组里的键不存在也不用担心,removeItem()遇到不存在的键不会抛出错误,只会静默处理。
方案2:封装可复用的批量删除函数
如果需要多次用到批量删除功能,封装成函数会更方便,以后直接调用就行:
function removeSessionItems(...keys) { // 兼容两种调用方式:传多个单独参数,或者传一个数组 const keyList = Array.isArray(keys[0]) ? keys[0] : keys; keyList.forEach(key => sessionStorage.removeItem(key)); } // 调用方式1:传入多个单独键名 removeSessionItems('key1', 'key2'); // 调用方式2:传入键名数组 removeSessionItems(['key1', 'key2']);
这个函数做了兼容处理,不管你习惯哪种传参方式都能正常工作。
额外小提示:清空全部sessionStorage
如果你是想删除所有存储的内容,直接用原生的sessionStorage.clear()就好,不用逐个指定键——不过这应该不是你当前的需求,还是提一下以防万一。
内容的提问来源于stack exchange,提问作者Sanjay Shr
相关产品推荐
相关产品推荐

