Ajouter des données à l'objet localStorage
Je vais essayer, en vain, pour ajouter un nouvel objet à un objet localStorage. Au lieu de cela, à la fin, la présence de deux jeux de données dans le localStorage, je reçois le dernier. Toute réflexion sur ce que je fais mal? Grâce
Voici ce que j'essaie de faire:
//add the first student
var newStudent = [{
"name": "John",
"age": 21,
"nationality": "Spanish"
}];
localStorage.setItem("students", JSON.stringify(newStudent));
//Retrieve the object from storage to add a new student
var retrievedObject = localStorage.getItem("students");
var stored = JSON.parse(retrievedObject);
//add a new student
var newStudent2 = [{
"name": "Mary",
"age": 20,
"nationality": "German"
}];
var stored = Object.assign(stored, newStudent2);
//Update the storage
localStorage.setItem("students", JSON.stringify(stored));
var result = localStorage.getItem("students");
console.log(result);
Avez-vous essayé quelque chose comme: fenêtre.localStorage.attr = valeur ou tout simplement localStorage.attr = valeur?
Êtes-vous essayer d'avoir un tableau d'objets dans localStorage? Vous êtes en train de mettre chaque objet dans son propre tableau, ce qui est un peu bizarre.
Oui, je suis d'essayer d'avoir un tableau d'objets, mais seulement le dernier est sauvé.
Êtes-vous essayer d'avoir un tableau d'objets dans localStorage? Vous êtes en train de mettre chaque objet dans son propre tableau, ce qui est un peu bizarre.
Oui, je suis d'essayer d'avoir un tableau d'objets, mais seulement le dernier est sauvé.
OriginalL'auteur McRui | 2016-03-12
Vous devez vous connecter pour publier un commentaire.
Vous devez stocker un tableau, pas un objet;
Pouvez-vous marquer la réponse est correcte, s'il vous plaît?
OriginalL'auteur Sergey Yarotskiy
De remplacement de l'objet stocké par newStudent2 lors de l'extraction de localStorage:
La place, vous pouvez essayer de créer un tableau d'objets et en les ajoutant à chaque fois que la création d'un nouveau.
OriginalL'auteur Diego Gallegos
Vous utilisez
Object.assign()
mal. Voir ici pour plus d'informations à ce sujet.Avez-vous vraiment besoin
newStudent2
être un tableau d'un seul objet? Si non, vous pouvez simplement fairestored.push(newStudent2)
, oùnewStudent2
est un objet et non pas un tableau avec un seul objet.Donc, quelque chose comme:
Vous êtes les bienvenus. J'ai mis à jour la réponse dans le temps
OriginalL'auteur Dimitris Karagiannis
Selon MDN
The Object.assign() method only copies enumerable and own properties from a source object to a target object
dans votre cas:
var stored = JSON.parse(retrievedObject);
return array, vous pouvez simplementpush
nouvel objet de tableau:stored.push(newStudent2);
lors destored
àlocalStorage
.OriginalL'auteur zooblin