(javascript)本地存储值更新

时间:2019-12-21 19:48:59

标签: javascript local-storage

我将数据设置为本地存储中名为“ todo”的键。

结构是这样的。

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"
  

localStorage.setItem(“ finYN”,JSON.stringify(“ Y”));

2 个答案:

答案 0 :(得分: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轻松地检查值,完成后,您可以再次将其存储为字符串。

答案 1 :(得分:1)

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

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