Javascript HTML5本地存储JSON多个对象

Javascript HTML5本地存储JSON多个对象,javascript,html,local-storage,Javascript,Html,Local Storage,有人知道吗,当我在javascript中执行循环时,是否可以创建一个包含多个对象的本地存储 目前,我的代码如下所示: var albums = ''; var album_list = ''; $.each(data, function(i,item){ var name = item.name; albums += '<li>'+item.name+'</li>'; var album_content = {name: item.name, uid

有人知道吗,当我在javascript中执行循环时,是否可以创建一个包含多个对象的本地存储

目前,我的代码如下所示:

var albums = '';
var album_list = '';

$.each(data, function(i,item){
   var name = item.name;
   albums += '<li>'+item.name+'</li>';

   var album_content = {name: item.name, uid: 1};
   var album_content = album_content+',';

   album_list += album_content;


});

var album_list = '['+album_list+']';   
localStorage.setItem("albums", JSON.stringify(album_list));
var albums_l = JSON.parse(localStorage.getItem("albums"));

$.each(albums_l, function(i,item){
   console.log(item.name);
});
var相册=”;
变量列表=“”;
$。每个(数据、功能(i、项){
var name=item.name;
相册+='
  • '+项目名称+'
  • '; var album_content={name:item.name,uid:1}; var album_content=album_content+','; 相册列表+=相册内容; }); var album_list='['+album_list+']'; setItem(“albums”,JSON.stringify(album_list)); var albums_l=JSON.parse(localStorage.getItem(“albums”); $。每个(相册、功能(i、项目){ console.log(item.name); });
    但这给了我一个错误。
    任何人都有更好的解决方案,所以我只有一个localstorage和其中的所有数据?

    您在代码中混合了对象和字符串。您的
    album\u内容
    在循环中被初始化为对象(
    {name:item.name,uid:1}
    )。在下一行中,通过添加逗号将其视为字符串

    总体而言,使用数组收集所有对象。使用本机对象(几乎)总是比试图以某种方式模拟它们要好

    请尝试此代码

    var albums = '';
    var album_list = [];
    
    $.each(data, function(i,item){
       var name = item.name;
       albums += '<li>'+item.name+'</li>';
    
       var album_content = {name: item.name, uid: 1};
       // remove that line completly
       // var album_content = album_content+',';
    
       album_list.push( album_content );
    
    });
    
    
    localStorage.setItem("albums", JSON.stringify( album_list ));
    var albums_l = JSON.parse(localStorage.getItem("albums"));
    
    $.each(albums_l, function(i,item){
       console.log(item.name);
    });
    
    var相册=”;
    var相册_列表=[];
    $。每个(数据、功能(i、项){
    var name=item.name;
    相册+='
  • '+项目名称+'
  • '; var album_content={name:item.name,uid:1}; //完全去掉那条线 //var album_content=album_content+','; 相册列表。推送(相册内容); }); setItem(“albums”,JSON.stringify(album_list)); var albums_l=JSON.parse(localStorage.getItem(“albums”); $。每个(相册、功能(i、项目){ console.log(item.name); });
    出了什么问题:

    var albums = '';
    var album_list = '';
    
    $.each(data, function(i,item){
       var name = item.name;
       albums += '<li>'+item.name+'</li>';
    
       var album_content = {name: item.name, uid: 1};
    
       // at this point album_content is an object.. so it will be this string afterwards: "[object Object],"
       var album_content = album_content+',';
    
       album_list += album_content; //you're adding "[object Object],"
    
    
    });
    
    // album_list will now look like this: '["[object Object],[object Object],"]'
    var album_list = '['+album_list+']';
    localStorage.setItem("albums", JSON.stringify(album_list));
    var albums_l = JSON.parse(localStorage.getItem("albums"));
    
    $.each(albums_l, function(i,item){
       console.log(item.name);
    });
    
    var相册=”;
    变量列表=“”;
    $。每个(数据、功能(i、项){
    var name=item.name;
    相册+='
  • '+项目名称+'
  • '; var album_content={name:item.name,uid:1}; //此时,album_内容是一个对象。因此,后面将是这个字符串:“[object],” var album_content=album_content+','; album_list+=album_content;//您正在添加“[object],” }); //相册列表现在将如下所示:“[”[对象对象],[对象对象对象],“]” var album_list='['+album_list+']'; setItem(“albums”,JSON.stringify(album_list)); var albums_l=JSON.parse(localStorage.getItem(“albums”); $。每个(相册、功能(i、项目){ console.log(item.name); });
    如何纠正:

    var albums = '';
    var album_list = [];
    
    $.each(data, function(i,item){
       var name = item.name;
       albums += '<li>'+item.name+'</li>';
    
       var album_content = {name: item.name, uid: 1};
    
       album_list.push(album_content);
    
    
    });
    
    localStorage.setItem("albums", JSON.stringify(album_list));
    var albums_l = $.parseJSON(localStorage.getItem("albums"));
    
    $.each(albums_l, function(i,item){
       console.log(item.name);
    });
    
    var相册=”;
    var相册_列表=[];
    $。每个(数据、功能(i、项){
    var name=item.name;
    相册+='
  • '+项目名称+'
  • '; var album_content={name:item.name,uid:1}; 相册列表。推送(相册内容); }); setItem(“albums”,JSON.stringify(album_list)); var albums_l=$.parseJSON(localStorage.getItem(“albums”); $。每个(相册、功能(i、项目){ console.log(item.name); });