php更新localstorage数组而不添加新数组

时间:2016-02-23 22:03:32

标签: javascript jquery

我添加了一个数组localstorage。工作良好。我也可以检索它。如何在没有添加新数组的情况下更新ID。 例子.. 如何更新姓氏和年龄ID = sam而不创建新数组

var objItem = {};
if (localstorage.getItem("records") == null) {
    objArr = [];
} else {
    objArr = JSON.parse(localstorage.getItem("records"));
}
var ID = "sam";
var surname = "edward";
var age = "two";
objItem.ID = ID;
objItem.surname = surname;
objItem.age = age;
objArr.push(objItem);
localstorage.setItem("records", JSON.stringify(objArr));

1 个答案:

答案 0 :(得分:1)

localStorage只是一个键值存储。要更新,您只需保存到相同的密钥。也就是说,您检索数组,解析,更新,字符串化然后保存到相同的密钥。

要在数组上查找项目,可以使用array.filter并创建一个仅包含与ID匹配的值的数组。更新该数组中的值并保存原始数组。

let names = [...names...];
let matches = names.filter(person => person.ID === ID);
matches.forEach(person => person.surname = surname);
let toSave = JSON.stringify(names);
// save to localstorage