簡體   English   中英

如何從本地存儲中的數組中刪除對象?

[英]How to remove object from array in local storage?

我有這樣的數組:

var myMovie = [];

和這樣的對象:

var first = {id:"tt3783958", title:"La La Land", year:"2016", type:"Comedy, Drama, Music"}

我通過按鈕上的OnClick() 對象添加到本地存儲陣列中。

$(document).ready(function() {
   $(".btn.btn-outline-success").click(function () {

    myMovie.push(first); 

    localStorage.setItem('myMovie', JSON.stringify(myMovie));
    var output = JSON.parse(localStorage.getItem('myMovie'));

對象添加到本地存儲后,本地存儲如下所示:

[{id:"tt3783958", title:"La La Land", year:"2016", type:"Comedy, Drama, Music"}]

我的問題是,如何通過變量名稱刪除整個對象? 我想刪除的對象firstmyMovie 每次對象的索引位置可能不同

[{id:"tt3783958", title:"La La Land", year:"2016", type:"Comedy, Drama, Music"}, [{id:"tt9574821", title:"Ghost Protocol", year:"2012", type:"Action, Adventure"}]

我建議您將對象格式化

var first = {"tt3783958": { title:"La La Land", year:"2016", type:"Comedy, Drama, Music"}}

ID將使您的對象具有唯一鍵。 更新也將很容易。

並將它們存儲在JSON對象中,而不是像

myMovie = {}; //note its an object

這將使您更輕松地查詢和刪除項目。

最好是一個函數,它不僅可以更改數組,還可以將其存儲在localStorage中。

要找到要刪除的正確索引,您可以找到標題正確的對象:

  var myMovie=[] //JSON.parse(localStorage.getItem('myMovie')||"[]"); function push(el){ myMovie.push(el); //localStorage.setItem('myMovie', JSON.stringify(myMovie)); } function remove(title){ var i=myMovie.findIndex(movie=>movie.title===title); if(i!==-1){ myMovie.splice(i,1); //localStorage.setItem('myMovie', JSON.stringify(myMovie)); } } push({id:"tt3783958", title:"La La Land", year:"2016", type:"Comedy, Drama, Music"}); console.log(myMovie); remove("La La Land"); console.log(myMovie); 

為了使運行的stackSnippet,我不得不刪除localStorage功能,它被注釋掉了。

您需要獲取對象並設置一個新對象:

myMovie = JSON.parse(localStorage.getItem("myMovie"));
myMovie.splice(0,1);
localStorage.setItem("myMovie",JSON.stringify(myMovie));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM