Javascript localStorage.removeItem()未从对象中删除键/值

Javascript localStorage.removeItem()未从对象中删除键/值,javascript,arrays,object,local-storage,web-storage,Javascript,Arrays,Object,Local Storage,Web Storage,努力想弄明白这一点 我试图从localStorage对象中删除一个键/值对。但是,没有任何内容被删除。(我也没有任何错误) 我知道我可以通过密钥名删除有问题的密钥/值。下面是该对象的一个示例: bookMarksArray: [ { "name": "reena", "url": "brian" }, { "name": "joe", "ur

努力想弄明白这一点

我试图从localStorage对象中删除一个键/值对。但是,没有任何内容被删除。(我也没有任何错误)

我知道我可以通过密钥名删除有问题的密钥/值。下面是该对象的一个示例:

   bookMarksArray:    [
        {
            "name": "reena",
            "url": "brian"
        },
        {
            "name": "joe",
            "url": "ault"
        }
       ]
这是我的密码。。。我使用事件目标来获取关键字名称,并将其与对象索引相匹配

然后将该对象索引的键传递到localStorage.removietem()。。。我做错了什么

  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


谢谢大家!

LocalStoage将值保存为字符串格式,因此您每次都必须将JSON对象字符串化才能将其保存到localStorage中,我们可以解决这个问题,请找到下面的代码片段,在这种情况下非常有用

var updatestrage=函数(filterName){
var bookMarksArray=[{“name”:“reena”,“url”:“brian”},{“name”:“joe”,“url”:“ault”}]
setItem('nameList',JSON.stringify(bookMarksArray));
var items=JSON.parse(localStorage.getItem('nameList');
var updatedList=items.filter(函数(a){
返回a.name!==filterName;
});
localStorage.setItem('nameList',JSON.stringify(updatedList));
log(localStorage.getItem('nameList');
//结果[{“name”:“reena”,“url”:“brian”}]
};

更新数据库(“乔”)LocalStoage将值保存为字符串格式,因此每次都必须对JSON对象进行字符串化才能将其保存到localStorage中,我们可以解决此问题,请找到下面的代码片段,在这种情况下非常有用

var updatestrage=函数(filterName){
var bookMarksArray=[{“name”:“reena”,“url”:“brian”},{“name”:“joe”,“url”:“ault”}]
setItem('nameList',JSON.stringify(bookMarksArray));
var items=JSON.parse(localStorage.getItem('nameList');
var updatedList=items.filter(函数(a){
返回a.name!==filterName;
});
localStorage.setItem('nameList',JSON.stringify(updatedList));
log(localStorage.getItem('nameList');
//结果[{“name”:“reena”,“url”:“brian”}]
};

更新数据库(“乔”)您不能删除特定的数组项(因为它存储为字符串),将整个数组放入javascript变量,然后删除该项,然后再次将更新的变量推送到localstorage。console语句是否打印您要删除的确切名称?我相信这里有一些误解<代码>本地存储
存储字符串,而不是对象。您想从对象中删除键/值对,还是要删除特定的
localStorage
key?Hi@gangaadhargandi-是,它返回以下内容:delete app.js:52 objIndex 0 app.js:54 removeObj.name)reena app.js:55 deletereena@GerardoFurtado-所以我想删除整个键/值。比如name:Joe,url:ault-谢谢你不能删除特定的数组项(因为它存储为字符串),将整个数组放入一个javascript变量,然后删除该项并再次将更新的变量推送到localstorage。控制台语句是否打印出你想要删除的确切名称?我相信这里有一些误解<代码>本地存储
存储字符串,而不是对象。您想从对象中删除键/值对,还是要删除特定的
localStorage
key?Hi@gangaadhargandi-是,它返回以下内容:delete app.js:52 objIndex 0 app.js:54 removeObj.name)reena app.js:55 deletereena@GerardoFurtado-所以我想删除整个键/值。比如名字:Joe,url:ault-谢谢,请不要从同一个答案复制代码。请维护这个portalsorry dude的完整性,但我没有复制你的代码。请检查我对该过程问题的评论。请不要从同一答案中复制代码。请维护这个portalsorry dude的完整性,但我没有复制你的代码。请查看我对该程序问题的评论。嗨,这两个-Sarvesh/OutofWorld=非常有效,非常感谢。我犯了一个错误,没有意识到这是一个字符串,所以不可编辑。但是,我还必须操纵数组。非常感谢你们!大家好-Sarvesh/OutofWorld=这些都很好用,非常感谢。我犯了一个错误,没有意识到这是一个字符串,所以不可编辑。但是,我还必须操纵数组。非常感谢你们!
//set js object to localstorage
localStorage.setItem('bookMarksArray',JSON.stringify(bookMarksArray))

//get js object from localstorage
bookMarksArray= JSON.parse(localStorage.getItem('bookMarksArray'))

//remove desired item
bookMarksArray = bookMarksArray.filter(function(item) {
    return item.name !== 'reena';
});

//update js object in localstorage
localStorage.setItem('bookMarksArray',JSON.stringify(bookMarksArray))