如何清除JavaScript中的本地存储值

时间:2019-07-11 10:43:56

标签: javascript

如何仅清除特定的本地存储值示例如果我有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','');

有没有简单的方法?

3 个答案:

答案 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);