如何仅清除特定的本地存储值示例如果我有6个本地存储值,例如sample1到sample6。 本地存储清除值:
localStorage.setItem('sample1','');
localStorage.setItem('sample2','');
localStorage.setItem('sample3','');
localStorage.setItem('sample4','');
localStorage.setItem('sample5','');
localStorage.setItem('sample6','');
我可以像这样代替上面的脚本吗?但不起作用
localStorage.setItem('sample1,sample2,sample3,sample4,sample5,sample6','');
有没有简单的方法?
答案 0 :(得分:4)
您可以将密钥放入数组中(如niet所指出的那样,用forEach
遍历每个密钥,并使用removeItem
将其从localStorage中删除:
const keys = ['sample1','sample2','sample3','sample4','sample5','sample6']
keys.forEach(localStorage.removeItem)
请注意,我们可以在
.forEach(localStorage.removeItem)
上使用速记.forEach(e => localStorage.removeItem(e))
,因为我们只将一个元素传递给一个函数,因此速记将为我们做到这一点。
另一种实现此目标的方法(如Shyrs提出的)是填充x
元素长数组,并向每个元素添加索引,然后应用forEach来删除带有给定密钥:
Array(6).fill("sample").map((a,i)=>a+(i+1)).forEach(localStorage.removeItem);
如果要“取消设置”或“清除”值,请改用setItem
:
const keys = ['sample1','sample2','sample3','sample4','sample5','sample6']
keys.forEach(key => localStorage.setItem(key, ''))
答案 1 :(得分:1)
就像注释中建议的那样,使用循环来实现。但是,delete
运算符不是正确的处理方式。以下应该工作:
const itemsToRemove = ['sample1', 'sample2', 'sample3', 'sample4', 'sample5', 'sample6'];
for(const item of itemsToRemove) {
localStorage.setItem(item, ‘’);
}
编辑
您可以将其包装在一个函数中:
function clearItems(list) {
for (const item of list) {
localStorage.setItem(item, ‘’);
}
}
. . .
const itemsToRemove = ['sample1', 'sample2', 'sample3', 'sample4', 'sample5', 'sample6'];
clearItems(itemsToRemove);
答案 2 :(得分:0)
如果要删除,请考虑以下事项:
for (i = 1; i <= 6; i++) localStorage.removeItem("sample" + i);