Вы можете использовать numpy: flat_list = list(np.concatenate(list_of_list))
Вы смешиваете объекты и строки в своем коде. Ваш 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);
});
Что случилось:
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);
});