代码之家  ›  专栏  ›  技术社区  ›  Mark Gerryl Mirandilla

本地存储中的阵列数据,在页面重新加载后重置

  •  2
  • Mark Gerryl Mirandilla  · 技术社区  · 7 年前

    我正在处理需要将对象数据保存到localStorage的页面,工作正常,但当我刷新页面并再次添加时,所有数据都会被删除。

    我想要的是阻止重置数组列表。

    希望你能理解我。

    谢谢

    CODEPEN

    $(document).ready(function(){
    
    		var films = [];
    		
    		$('button').click(function(){
          
         var film = {
                  'id': 4,
                  'title':'John Wick',
                  'Genre':'Action'
                 };
    			films.push(film);
    			localStorage.setItem("films", JSON.stringify(films));
    
    			var movies = localStorage.getItem("films");
    			movies     = JSON.parse(movies);
    
    			console.log(movies);
    
    		});
    
    	});
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <button>click</button>
    3 回复  |  直到 7 年前
        1
  •  4
  •   CertainPerformance    7 年前

    您需要分析现有 localStorage.films ,并将其放入 films 开始时为变量。

    const films = JSON.parse(localStorage.films || '[]');
    
        2
  •  2
  •   Sakshi Nagpal    7 年前

    您需要将本地存储数据存储在页面上,并在电影中重新加载。

    $(document).ready(function(){
        var data = localStorage.getItem("films");
        var films = data ? JSON.parse(data) : [];
    
        $('button').click(function(){
    
                var film = {
                  'id': 4,
                  'title':'John Wick',
                  'Genre':'Action'
                 };
            films.push(film);
            localStorage.setItem("films", JSON.stringify(films));
    
            var movies = localStorage.getItem("films");
            movies = JSON.parse(movies);
    
            console.log(movies);
    
            });
    
        });
    
        3
  •  1
  •   atiq1589    7 年前

    在设置值之前,需要获取现有值,然后将新值与现有值关联,并将其设置为本地存储。

    var movies = localStorage.getItem("films");
    movies = JSON.parse(movies || '[]');
    films.concat(movies);
    localStorage.setItem("films", JSON.stringify(films));