【发布时间】:2019-12-03 19:09:00
【问题描述】:
正在努力解决这个问题......
我正在尝试从我的 localStorage 对象中删除一个键/值对。但是,没有任何东西被删除。 (我也没有任何错误)。
我知道我可以删除有问题的键/值,通过它的键名。这是对象的示例:
bookMarksArray: [
{
"name": "reena",
"url": "brian"
},
{
"name": "joe",
"url": "ault"
}
]
这是我的代码...我正在使用事件目标来获取键名并将其匹配到对象索引。
然后将该对象索引的键传入 localStorage.removeItem()...我做错了什么?
list.addEventListener('click', event => {
if (event.target.classList.contains('js-delete-url')) {
const editName = event.target.parentElement.name.value;
const objIndex = bookMarksArray.findIndex(obj => obj.name === editName);
localStorage.removeItem(bookMarksArray[objIndex].name);
console.log('delete', bookMarksArray[objIndex].name);
}
});
控制台打印:
app.js:55 删除 reena
谢谢!
【问题讨论】:
-
您不能删除特定的数组项(因为它存储为字符串),将整个数组放入一个 javascript 变量中,然后删除该项并再次将更新的变量推送到本地存储。
-
控制台语句是否打印了您要删除的确切名称?
-
我相信这里有一些误解。
localStorage存储一个字符串,而不是一个对象。您想从对象中删除键/值对,还是要删除特定的localStorage键? -
嗨@GangadharGandi - 是的,它会返回:delete app.js:52 objIndex 0 app.js:54 removeObj.name) reena app.js:55 delete reena
-
@GerardoFurtado - 所以我想删除整个键/值。喜欢的名字:乔,网址:ault - 谢谢
标签: javascript arrays object local-storage web-storage