Mac*_*Luc 12 javascript json loops local-storage
所以我有一个数组stringify'ed并保存在我的localStorage'人员'键下.
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));
Run Code Online (Sandbox Code Playgroud)
当我需要为名字为x的人更新年龄时(假设输入是姓名为b的人),我的方法是获取并解析我的localStorage密钥:
var persons = JSON.parse(localStorage.persons);
Run Code Online (Sandbox Code Playgroud)
然后我创建一个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));
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.我已经在循环中找到了我的匹配,但是我不知道如何在这个时代添加2年并更新我的值localStorage.persons而不覆盖和销毁json对象.
epa*_*llo 28
你需要像原来那样重新设置对象,现在你只需要编号,而不是对象.
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
Run Code Online (Sandbox Code Playgroud)