将 localStorage 转换为字符串并从中删除特定元素
Convert localStorage as string and remove specific elements from it
如何将 localStorage
的内容导出为字符串并从中删除特定的键值对?
也就是说,我只需要保留那些值为like
或dislike
的键。应删除其他密钥。
换句话说,结果字符串应该是
"anne":"dislike","jane":"like","john":"like","mike":"dislike"
// the order doesn't matter
localStorage.clear();
localStorage.setItem('anne', 'dislike');
localStorage.setItem('jane', 'like');
localStorage.setItem('john', 'like');
localStorage.setItem('mike', 'dislike');
localStorage.setItem('abcd', 'foo');
localStorage.setItem('efgh', 'bar');
// this may be useful for something . . .
const stringified = JSON.stringify(localStorage);
Object.keys(localStorage).forEach(function(key) {
const value = localStorage.getItem(key);
if (value === 'like' || value === 'dislike') {
// what should be here?
}
});
我花了一天时间从以下链接尝试解决方案:
- Looping through localStorage in HTML5 and JavaScript
- How to retrieve all localStorage items without knowing the keys in advance?
- LocalStorage and JSON.stringify JSON.parse
可是我还是想不通
我不想更改local Storage
的原始内容。我只想将其导出为“干净”的字符串。
你应该
// if values is not equal to string 'like' or string 'dislike'
if (value !== 'like' || value !== 'dislike') {
// if not equal to those, remove the item with this key name (key)
localStorage.removeItem(key);
}
尝试使用
localStorage.removeItem('name');
localStorage.clear();
localStorage.setItem('anne', 'dislike');
localStorage.setItem('jane', 'like');
localStorage.setItem('john', 'like');
localStorage.setItem('mike', 'dislike');
localStorage.setItem('abcd', 'foo');
localStorage.setItem('efgh', 'bar');
// this may be useful for something . . .
const stringified = JSON.stringify(localStorage);
var res = {};
Object.keys(localStorage).forEach(function(key) {
const value = localStorage.getItem(key);
if (value === 'like' || value === 'dislike') {
res[key] = value;
}
});
console.log(res);
localStorage 以字符串格式保存数据,您必须将其转换为对象才能检索它
const value = localStorage.getItem(key);
value = JSON.parse(value);
console.log("value",value); //to check current value of object in console
我认为这可能有用
localStorage.clear()
localStorage.setItem('anne', 'dislike')
localStorage.setItem('jane', 'like')
localStorage.setItem('abcd', 'foo')
localStorage.setItem('efgh', 'bar')
function getStorage() {
const data = {}
let i = localStorage.length
while (i--) {
let key = localStorage.key(i)
let value = localStorage.getItem(key)
if (/^(like|dislike)$/i.test(value)) {
data[key] = value
}
}
return data
}
console.log(getStorage())
// {
// anne: "dislike",
// jane: "like"
// }
如何将 localStorage
的内容导出为字符串并从中删除特定的键值对?
也就是说,我只需要保留那些值为like
或dislike
的键。应删除其他密钥。
换句话说,结果字符串应该是
"anne":"dislike","jane":"like","john":"like","mike":"dislike"
// the order doesn't matter
localStorage.clear();
localStorage.setItem('anne', 'dislike');
localStorage.setItem('jane', 'like');
localStorage.setItem('john', 'like');
localStorage.setItem('mike', 'dislike');
localStorage.setItem('abcd', 'foo');
localStorage.setItem('efgh', 'bar');
// this may be useful for something . . .
const stringified = JSON.stringify(localStorage);
Object.keys(localStorage).forEach(function(key) {
const value = localStorage.getItem(key);
if (value === 'like' || value === 'dislike') {
// what should be here?
}
});
我花了一天时间从以下链接尝试解决方案:
- Looping through localStorage in HTML5 and JavaScript
- How to retrieve all localStorage items without knowing the keys in advance?
- LocalStorage and JSON.stringify JSON.parse
可是我还是想不通
我不想更改local Storage
的原始内容。我只想将其导出为“干净”的字符串。
你应该
// if values is not equal to string 'like' or string 'dislike'
if (value !== 'like' || value !== 'dislike') {
// if not equal to those, remove the item with this key name (key)
localStorage.removeItem(key);
}
尝试使用
localStorage.removeItem('name');
localStorage.clear();
localStorage.setItem('anne', 'dislike');
localStorage.setItem('jane', 'like');
localStorage.setItem('john', 'like');
localStorage.setItem('mike', 'dislike');
localStorage.setItem('abcd', 'foo');
localStorage.setItem('efgh', 'bar');
// this may be useful for something . . .
const stringified = JSON.stringify(localStorage);
var res = {};
Object.keys(localStorage).forEach(function(key) {
const value = localStorage.getItem(key);
if (value === 'like' || value === 'dislike') {
res[key] = value;
}
});
console.log(res);
localStorage 以字符串格式保存数据,您必须将其转换为对象才能检索它
const value = localStorage.getItem(key);
value = JSON.parse(value);
console.log("value",value); //to check current value of object in console
我认为这可能有用
localStorage.clear()
localStorage.setItem('anne', 'dislike')
localStorage.setItem('jane', 'like')
localStorage.setItem('abcd', 'foo')
localStorage.setItem('efgh', 'bar')
function getStorage() {
const data = {}
let i = localStorage.length
while (i--) {
let key = localStorage.key(i)
let value = localStorage.getItem(key)
if (/^(like|dislike)$/i.test(value)) {
data[key] = value
}
}
return data
}
console.log(getStorage())
// {
// anne: "dislike",
// jane: "like"
// }