Как обновить значение json в localstorage
таким образом, у меня есть массив stringify'ED и сохранен в моем localStorage под ключом "persons".
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));
когда мне нужно обновить возраст для человека с именем x (скажем, вход-человек с именем b), мой подход-получить и проанализировать мой ключ localStorage:
var persons = JSON.parse(localStorage.persons);
затем я делаю цикл for для цикла через объекты и найти объект с именем 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));
}
}
кажется, это не работает.
Я нашел свой матч в цикле, но я не знаю как добавить 2-х лет возраст и обновление этого значения в my localStorage.persons
без перезаписи и уничтожения объектов json.
1 ответов
вы должны снова установить объект, как вы делали изначально, сейчас вы stroring только числом, а не объект.
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