将对象添加到本地存储中的列表

时间:2017-06-04 09:04:56

标签: javascript jquery local-storage

我正在尝试将对象first添加到myMovie到localstorage。但是当检查localstorage时,myMovie总是空的。

var myMovie= [];
    localStorage.setItem('myMovie', JSON.stringify(myMovie));
    var output = JSON.parse(localStorage.getItem('myMovie'));
    var first= {id:"tt3783958", title:"La La Land", year:"2016", type:"Comedy, Drama, Music"}
        myMovie.push(first);

我无法弄清楚我在这里做错了什么。

2 个答案:

答案 0 :(得分:2)

好吧,看起来你在存储之前将对象写入实际添加第一个项目。

首先尝试在列表中添加内容,或者在每次更新后再次保存。

<div class="container">
    <div name="item1" class="single_item">
        Item 1
    </div>
    <div name="item2" class="single_item">
        Item 2
    </div>
    <div name="item3" class="single_item">
        Item 3
    </div>
    <div name="item4" class="single_item">
        Item 4
    </div>
</div>

答案 1 :(得分:1)

Best是一个函数,不仅可以更改数组,还可以将其存储在localStorage中:

&#13;
&#13;
    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);
&#13;
&#13;
&#13;

要创建一个正在运行的stackSnippet,我必须删除localStorage功能,它已被注释掉。