我正在创建一个简单的电视节目跟踪器(目前我已经看过/正在观看的电视跟踪器),并且由于我自己没有后端,所以我决定将所有数据存储在本地存储中。
现在,我可以将所有节目存储在本地存储中,而不会出现任何问题。当我需要更新本地存储中的数据时会发生问题(为您提供一个特定的示例-请查看下面的屏幕):
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
。我很高兴获得任何见识。
谢谢。
最佳答案
好吧,因为您只使用一个键(“ seriale”),所以没有其他方法可以反序列化它,相应地修改对象(例如,使用Array.prototype.splice
),再次对其进行序列化,然后使用相同的键和更新的键调用localStorage.setItem
和序列化的对象。