如何删除从某个字符串开始的localStorage数据
How to remove localStorage data starting with a certain string?
我想删除firebase相关的localStorage。我试过了:
let arr = [] // Array to hold the keys
// Iterate over localStorage and insert the keys that meet the condition into arr
for (let i = 0; i < localStorage.length; i++) { // eslint-disable-line
console.log(localStorage.key(i)) // eslint-disable-line
if (localStorage.key(i).substring(0,3) == 'firebase:') { // eslint-disable-line
arr.push(localStorage.key(i)) // eslint-disable-line
}
}
// Iterate over arr and remove the items by key
for (let i = 0; i < arr.length; i++) {
localStorage.removeItem(arr[i]) // eslint-disable-line
}
然而,它们根本没有被删除。
我做错了什么?
你不需要使用任何额外的数组和循环。
for (key in localStorage) {
if (key.substring(0,9) == 'firebase:') {
localStorage.removeItem(key);
}
}
substring(0,3) == 'firebase:'
这绝不可能是真的。你得到一个3个字符长的字符串,并将其与"firebase:"进行比较。把3改成9,就像这样:
substring(0, 9) == 'firebase:'
JS
必须指定以0开头的共9个字符
localStorage.setItem("abc" , "heelo");
localStorage.setItem("abc2" , "firebase:")
for (obj in localStorage) {
if (localStorage[obj].substring(0,9) == 'firebase:') {
localStorage.removeItem(obj);
}
}
console.log(localStorage)
相关文章:
- 将字符串添加到不区分大小写的 RegExp 中替换的事物开始
- JS:创建从索引0开始的所有子字符串的最快方法
- Angularjs从字符串开始搜索
- 如何删除字符串中从特定文本开始的所有字符
- 从特定索引开始从 json 获取字符串值
- 正则表达式在开始时将字符串与(逗号分隔的)数字匹配,并拆分为数字和其余
- 正则表达式,用于提取从某个字符开始的字符串,而不提取该字符本身
- 如何修剪在 LoDash/下划线中开始多个字符串
- 如何在javaScript中过滤从特定字符开始到字符的字符串
- 如何从给定模式开始删除字符串的末尾
- Javascript:字符串搜索正则表达式,从字符串的末尾开始
- JavaScript substr 与从第一个字符开始时的子字符串
- 在 JW 播放器开始之前不显示图像,如果 URL 包含字符串 base64
- 如何找到字符串的某个部分开始的位置
- JavaScript 正则表达式查找与开始和结束模式匹配的所有子字符串
- 使用字符串中的开始和结束单词以及 javascript 中的子字符串索引查找子字符串
- 按钮,根据字符串开始选择复选框- Javascript
- JavaScript 进程 从日期字符串开始的月份
- 如何删除从某个字符串开始的localStorage数据
- jQuery查找所有以定义的字符串开始并以数字结束的id