我不知道我是否理解你的问题,如果我理解了,请告诉我,以便我纠正我的答案,但我认为你想要做的是操纵你保存在缓存中的项目localStorage
,例如,该数据是一个包含多种类型数据的对象。
假设你有你的对象localstor
(我添加了一些选项卡,以便更容易查看和调试);
var localstor = {
userMsg : "Message",
userInfo :{
ID: "SomeID",
username: "SomeUsername",
pwd : "SomePassword"
}
}
将其放入 localStorage 非常简单(正如您所指出的,您已经知道该怎么做),因此您只需要选择一个密钥。在这里,我选择“obj”作为键:
localStorage.setItem("obj", JSON.stringify(localstor));
正如您可能已经注意到的,我使用了一个函数JSON.stringify()
。
我这样做是因为既然你有一个内部有对象的对象,你需要将其转换为String来存储它。 JavaScript 已内置此功能,因此您无需安装任何东西。
现在如何检索和更新 localstor 对象?
好简单。
我用以下方法检索对象localStorage.getItem()函数,传递我之前设置的“obj”,并且我需要使用这个结果将其转换回对象类型(因为我们之前将其存储为字符串,还记得吗?)JSON.parse()
功能。之后,我可以像编辑任何其他对象一样编辑该对象的属性:
localstor = JSON.parse(localStorage.getItem("obj"));
localstor.userInfo.username = "AnotherUsername";
我可以将新对象设置回 LocalStorage:
localStorage.setItem("obj", JSON.stringify(localstor));
就是这样!现在,当我再次检索它时,用户名的新值将在那里。
完整代码在这里:
var localstor = {
userMsg : "Message",
userInfo :{
ID: "SomeID",
username: "SomeUsername",
pwd : "SomePassword"
}
}
//Put the localstor object into the cache
localStorage.setItem("obj", JSON.stringify(localstor));
//Retrieve the object
localstor = JSON.parse(localStorage.getItem("obj"));
//Change the username property
localstor.userInfo.username = "AnotherUsername";
//And put the editted object back to cache
localStorage.setItem("obj", JSON.stringify(localstor));
如果您还有疑问,请告诉我,以便我更好地解答!