Хранить объекты в локальном хранилище javascript [дубликат]

Вы можете использовать numpy: flat_list = list(np.concatenate(list_of_list))

3
задан Simon Thomsen 27 April 2012 в 09:25
поделиться

2 ответа

Вы смешиваете объекты и строки в своем коде. Ваш album_content инициализируется в цикле как объект ({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);
});
6
ответ дан Sirko 26 August 2018 в 06:50
поделиться

Что случилось:

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 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);
});
1
ответ дан noob 26 August 2018 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: