J'ai donc un tableau stringify'ed et enregistré dans mon localStorage sous la clé "personnes".
arr = [{"name":"a", "age": 1, "sport":"football"},
{"name":"b", "age": 2, "sport":"volley"},
{"name":"c", "age": 3, "sport":"basket"}];
localStorage.setItem('persons', JSON.stringify(arr));
Lorsque j'ai besoin de mettre à jour l'âge de la personne portant le nom x (disons que l'entrée est la personne portant le nom b), mon approche consiste à obtenir et à analyser ma clé localStorage:
var persons = JSON.parse(localStorage.persons);
Ensuite, je crée une boucle for pour parcourir les objets et trouver un objet avec le nom b:
for (var i = 0; i < persons.length; i++) {
if(inputName === persons[i].name){
persons[i].age += 2
localStorage.setItem("persons", JSON.stringify(aCustomers[i].age));
}
}
Cela ne semble pas fonctionner. J'ai trouvé ma correspondance dans la boucle, mais je ne sais pas comment ajouter 2 ans à l'âge et mettre à jour cette valeur dans mon localStorage.persons
sans écraser et détruire les objets json.
Vous devez redéfinir l'objet comme vous l'avez fait à l'origine, en ce moment, vous ne stockez qu'un numéro, pas l'objet.
var persons = JSON.parse(localStorage.persons);
for (var i = 0; i < persons.length; i++) {
if(inputName === persons[i].name){ //look for match with name
persons[i].age += 2; //add two
break; //exit loop since you found the person
}
}
localStorage.setItem("persons", JSON.stringify(persons)); //put the object back