提问者:小点点

(javascript)本地存储值更新


我将数据设置为本地存储中名为待办事项的键。

结构是这样的。

key: todo
value : [{"text":"sdf","idx":1,"curTime":"Sun Dec 22 2019","finYN":""}]

单击按钮时,我想在finYN为空或为“N”时更新为“Y”。

如果这是我当前的本地存储结构,我可以使用此代码,但我不知道如何处理当前结构。

key: text / value : "sdf"
key: idx / value : 1
key: finYN / value : "Y"

本地存储。setItem(“finYN”,JSON.stringify(“Y”);


共2个答案

匿名用户

如果将值另存为字符串:

localStorage.setItem('todo', JSON.stringify({"text":"sdf","idx":1,"curTime":"Sun Dec 22 2019","finYN":""}));

然后,您可以获取该localStorage密钥的值并将其转换回JSON:

var json = JSON.parse(localStorage.getItem('todo'));

从这里,您可以通过访问json轻松检查值。finYN然后更改JSON,完成后,可以再次将其存储为字符串。

匿名用户

Localstorage值是纯字符串,因此无法操作字符串化对象。您必须替换整个值。

var todos = JSON.parse(localStorage.getItem('todo'));
if(!todos[0]['finYN']){
  todo['finYN'] = 'Y';
  localStorage.setItem('todo',JSON.stringify(todos))
}