2017-06-04 6 views
0

私はこのような配列があります。ローカルストレージのアレイからオブジェクトを削除するには?

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"}] 
+0

これは別の例ですが、私もあなたのソリューションを試しましたが、私のコードには当てはまりません。 – Slasher

+0

nope。コードは同じままです。 –

+0

問題は何も起こらないという前のコードですが、コンソールエラーが発生します。このコードの例を教えてください。 – Slasher

答えて

1

ベストは、配列を変更するだけでなく、それをlocalStorageに保存する関数です。削除する権利のインデックスを検索するに

、あなたは右のタイトルを持つオブジェクトを見つけることができます:ランニングstackSnippetを作るために

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);

を、私はのlocalStorage機能を削除しなければならなかった、それコメントアウトされています。

0

あなたがオブジェクトを取得および設定する必要があり、新たな1:

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

これは、新しい空の 'my​​Movie'配列を作成するようです。そして、変数名 'first'を介して削除する代わりに、最初のインデックスを削除するように設定しました。 – Slasher

1

私はあなたのオブジェクトは、固有のキーを持つようになります形式で

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

IDをあなたのオブジェクトを持っているあなたをアドバイスう。更新も簡単です。

とJSONオブジェクトでこれらを保管していない

myMovie = {}; //note its an object 

このような配列は、それが簡単にあなたが照会した項目を削除できるようにするためです。

+0

1行目の構文エラー、予期しないchar: –

関連する問題