【问题标题】:How to update object value in local storage如何更新本地存储中的对象值
【发布时间】:2020-07-07 09:15:57
【问题描述】:

我正在创建一个简单的电视节目跟踪器(目前我已经看过/正在观看的那些),由于我自己不做后端,所以我决定将所有数据存储在本地存储中。 现在我可以毫无问题地将所有节目存储在本地存储中。当我需要更新本地存储中的数据时会出现问题(给你一个具体的例子 - 请看下面的屏幕):

screenshot of my list with local storage shown

如您所见,我有这些按钮来调整节目的季节和剧集的数量(它们工作得很好)。 但我不知道如何将更新后的值存储在本地存储中。 在下方,您可以找到从本地存储读取数据并使用它们创建列表的代码:

    function readFromMemory(){
    const data = JSON.parse(localStorage.getItem('seriale'));
    data.forEach(element => {
        serialeMemory.push(element);
        let serialInMemory = new SerialeList(element.pos, element.img, element.name, element.score, element.userEpisodes, element.episodes,element.userSeasons, element.seasons, element.status, element.id);
        serialInMemory.inject(); //Creates list from class
        serialInMemory.episodeUpDown(); //Gives functionality to episodes buttons
        serialInMemory.seasonUpDown(); //Give functionality to seasons buttons
    });
    deleteSerialRow(); //method to delete the whole row from list and from local storage
}

我知道如何使用Array.prototype.filter 方法过滤出我想要的内容。但我不知道如何只将该行推送到localstorage

如果有任何见解,我将非常高兴。

谢谢。

【问题讨论】:

    标签: javascript local-storage


    【解决方案1】:

    好吧,既然你只使用一个键(“seriale”),没有其他方法可以反序列化它,相应地修改对象(例如使用Array.prototype.splice),再次序列化它并使用相同的键调用localStorage.setItem以及更新和序列化的对象。

    【讨论】:

      【解决方案2】:

      说实话,我自己解决了这个问题。 这是有效的方法:

      updateSeasons(id, changeValue){
          const data = JSON.parse(localStorage.getItem('seriale'));
          const filter = data.filter(element => element.id === id);
          filter[0].userSeasons = changeValue;
          for(let i = 0; i< serialeMemory.length; i++){
              if(serialeMemory[i].id === filter[0].id) serialeMemory[i].userSeasons = changeValue;
          }
          localStorage.setItem('seriale', JSON.stringify(serialeMemory));
      
      }
      

      我使用了在 DOMLoad 事件期间一直推送的相同数组,它工作得很好。 但是,是的,我可能应该为每一场演出都附上一把钥匙,但我认为我的解决方案很好。还是谢谢你!

      【讨论】:

        猜你喜欢
        • 2019-07-24
        • 2018-02-18
        • 2021-07-13
        • 2014-03-22
        • 2014-06-06
        • 1970-01-01
        • 2020-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多